Hallo,
ich arbeite mich gerade in Klassenprogrammierung in C++ ein.
Dabei bin ich jetzt bei einem Problem angekommen, bei dem ich heute
nicht weiter gekommen bin
1 | class Punkt {
|
2 | public:
|
3 | Punkt(double X = 0, double Y = 0) { x = X; y = Y; }
|
4 | void set(double X, double Y) { x = X; y = Y; }
|
5 | double getX() { return x; }
|
6 | double getY() { return y; }
|
7 | private:
|
8 | double x;
|
9 | double y;
|
10 | };
|
11 |
|
12 |
|
13 | void main() {
|
14 | // Zwei Variablen vom Typ "Punkt" zur Eingabe der Rechteckkoordinanten
|
15 | Punkt A, B;
|
16 | // Eingabe der Koordinaten der Punkte A und B
|
17 | double x, y;
|
18 | std::cout << "Koordinaten x und y Punkt A : "; std::cin >> x >> y; A.set(x, y);
|
19 | std::cout << "Koordinaten x und y Punkt B : "; std::cin >> x >> y; B.set(x, y);
|
20 |
|
21 |
|
22 | // Erzeugen eines Objekts der Klasse "Rechteck" und
|
23 | // Berechnung des Umfangs und der Flaeche des Rechteckes
|
24 | Rechteck RE(A, B);
|
25 | std::cout << "Die Rechteckflaeche betraegt " << RE.Flaeche() << std::endl;
|
26 | double Umfang;
|
27 | RE.Umfang(Umfang);
|
28 | std::cout << "Der Umfang des Rechteckes betraegt " << Umfang << std::endl;
|
29 | }
|
Aufgabe ist es nun die Klasse Rechteck zu Programmieren. Hierbei kommen
aber nun die Probleme
1 | class Rechteck{
|
2 | public:
|
3 | Rechteck(double A, double B);
|
4 | double Flaeche() { return 50; }
|
5 | double Umfang(double umfang) { return 50; }
|
6 | private:
|
7 | double flaeche;
|
8 | double umfang;
|
9 | };
|
zunächst habe ich in der Funktion Flaeche() und Umfang() feste werte
reingeschrieben. Das Problem liegt schon beim Aufruf
Da A und B variablen vom Typ Punkt sind, kann ich die in der Klasse
Rechteck nicht benutzen.
Wenn ich den Aufruf umänder in
funktioniert der Aufruf.
Dann habe ich versucht in der Klasse Rechteck die Funktion Flaeche zu
ändern in
1 | Rechteck(double A, double B) {flaeche = ((B.getX() - A.getX()) * (B.getY() - A.getY()));}
|
2 | double Flaeche() {return flaeche;}
|
Aber auch hier gibt es einen Fehler:
expression must have class type.
kann mir hier jemand einen tip geben?
Johannes