2016-03-21 7 views
-3

Ich versuche, eine void-Funktion zu schreiben, um die Fläche eines Kreises zu berechnen. Hier ist mein Code so weit:Ich versuche, eine void-Funktion zum Berechnen der Fläche eines Kreises

Circle::Circle() 
{ 
} 
Circle::Circle(double r):Shape(){ 
    SetRadius(r); 
} 
double Circle::GetRadius(void) const{ 
    return radius; 
} 
void Circle::SetRadius(double r){ 
    this->radius = r; 
} 
void Area(double r){ 
    double area = pi(r*r); 
} 

Circle::~Circle() 
{ 
} 

Ich kann es nicht herausgefunden, aber ich versuche, das private const Daten Mitglied pi von meinem .h in meiner Funktion für den Zugriff auf und es wird es nicht zulassen. Ich hatte es neulich, als ich versuchte es zu starten und jetzt wird es es nicht erlauben. Jede Hilfe wäre großartig.

+0

Sie benötigen das Include das Problem, das Sie bekommen, aber die Ursache ist, dass Sie nicht multiplizieren die (r * r) durch Pi wie folgt: 'pi * (r * r)' –

+0

Vielleicht 'pi * r * r '? Du versuchst 'Pi' zu nennen, als ob es eine Funktion ist. –

+0

es sagt mir, Pi ist undefiniert. Muss ich die Konstante const in meinen Konstruktor setzen? – AyeLetsGetCoding

Antwort

-1

Bitte versuchen Sie dies:

void Area(double r){ 
    double area = pi*(r*r); 
} 

Sie eine Handschrift-Notation mit der Umgebung Formel in C++ auszudrücken. pi (r * r) in C++ steht für einen Funktionsaufruf zur Pi-Funktion.

+0

Makros werden normalerweise als Großbuchstaben definiert, nicht als Konstanten. – milleniumbug

+1

Und obwohl dies das zu sein scheint, was der OP verlangt hat, ist das eine völlig nutzlose Funktion. Es berechnet die Fläche in einer lokalen Variablen, die bei der Rückkehr sofort zerstört wird. Ich kann mir keine 'Area'-Funktion vorstellen, die den Bereich nicht zurückgibt oder zumindest in einem Klassenmitglied speichert. –

+0

@Carey Gregory du hast Recht, es ist weniger, aber es ist, was es gefragt wird. –

Verwandte Themen