2017-06-10 2 views
0

Ich habe gerade angefangen zu programmieren und ich habe ein Problem mit dem Zugriff auf eine Funktion aus einer Klasse. Ich möchte den Bereich eines Dreiecks drucken, druckt aber nur "()". Hier ist mein Code:Zugreifen auf Funktion von Klasse

class Shape { 
    var area:Double? 
    func calculateArea(valA:Double, valB: Double) { 
     area = valA * valB 
    } 
} 
class Triangle: Shape { 
    override func calculateArea(valA: Double, valB: Double) { 
     area = ((valA*valB)/2) 
    } 
} 

var area1 = Triangle() 
print (area1.calculateArea(valA: 2, valB: 1)) 

Vielen Dank im Voraus.

Antwort

0

Ihre Funktion nicht nichts zurückgibt, Ihr einen leeren Druck zu tun.

Sie area Wert von Klasse Eigenschaft drucken:

area1.calculateArea(valA: 2, valB: 1) 
print(area1.area) 

oder Ihre Funktionen bearbeiten

func calculateArea(valA:Double, valB: Double) -> Double { 
    area = valA * valB 
    return area 
} 

und

override func calculateArea(valA: Double, valB: Double) -> Double { 
    area = ((valA*valB)/2) 
    return area 
} 

dann können Sie direkt das Funktionsergebnis

drucken 0
print(area1.calculateArea(valA: 2, valB: 1)) 
0

Ihre calculateArea Funktion gibt nichts zurück, so dass nichts zu drucken ist.

Sie haben die Funktion aufrufen und dann drucken Sie die area Eigenschaft auf Ihrem area1 Objekt:

var area1 = Triangle() 
area1.calculateArea(valA: 2, valB: 1) 
print(area1.area) 
Verwandte Themen