Frage zu Klasse in meinem Buch
-
Ich mach grad "Abstrakte Datentypen" in meinem Buch durch. Und nun gibt es eine Klasse "Shape" (Form) und von dieser sind andere Klassen abgeleitet wie Rectangel, oder Circle. ( z.B. class Circle : public Shape)....
So das is mal die vorgeschite, zumindestens gibts jetzt in der Klasse "Circle" zwei Methoden:long GetArea() {return 3 * itsRadius * itsRadius;) long GetPerim() {return 9 * itsRadius;}"itsRadius" wird im Konstruktor initialisiert, is aber nebensächlich glaub ich.
Zumindestens verstehe ich nicht was diese Funktionen machen sollen? Also die GetArea() wird wohl irgendwie den Flächeninhalt des Kreise ausrechnen? Oder? Hätt mal besser in Mathe aufpassen sollen... :D..aber was ist "Perim"? Was soll das kann mir jemand sagen was diese Funktionen machen.
Wäre jetzt aber ziemlich sinnlos wenn ich euch den Code posten würde, es ist nämlich alles nur Beispielhaft und tehoretisch angedeutet, und die Funktionen "GetArea()" und "GetPerim()" machen au nix in der main, sind glaub nur so als Beispiel dabei.
Was machen die jetzt?MfG
Stromberg
-
Ich würde ja auf "Perimeter" (=Umfang) tippen
(wobei - 3 ist ein ziemlich ungenauer Näherungswert für Pi :D)
-
Perim bei Wikipedia...

Ne keine Ahnung, Perim hab ich noch nie gehört und den Flächeninhalt eines Kreises rechnet man eigentlich mit pi*r^2 aus. Na gut, pi entspricht 3.141, da wird nur mit 3 gerechnet, was dann wohl etwas ungenau ist..
Generell kannst du aber davon ausgehen, dass auch in Büchern ab und an mal Fehler sind; und für das Verständnis von Klassen tut das Perim ja nix zur Sache
-
Das soll wohl ungefähr die Kreisfläche (Pi * r^2) und den Umfang (2*r*Pi) berechnen.
-
Voellig unabhaengig davon solltest du dir schleunigst ein besseres Buch suchen. Die Beispiele sind ja grausam.

-
Perim wird Perimeter sein, also Umfang. Warum er allerdings 9 und nicht 6 schreibt ist mir auch nicht klar.
-
http://de.wikipedia.org/wiki/Kreisumfang ...
#include <cmath> class circle : public shape { double get_area() const { return (std::acos(-1.0) * m_radius * m_radius); ) double get_perimeter() const { return (2 * std::acos(-1.0) * m_radius); } private: double m_radius; }wäre doch ganz in Ordnung ... OK π kann man auch genauer berechnen, aber egal
