drpingoo
Erfahrenes Mitglied
Hi zusammen,
ich hätte da ne Frage bezgl Klassenprogrammierung. Wahrscheinlich ist der Haken, den ich suche, ganz einfach, aber ich seh ihn wohl nicht. Und zwar gibt mir der Compeiler einen Fehler bei folgendem an:...Rechteck RE(A,B);... (siehe unten Code). Er sagt, dass ich keinen Zugriff habe auf private Member, dessen Deklaration in der Rechteck-Klasse erfolgte. Ich seh jetzt nicht, was da bei mir falsch ist, denn ich setze den Wert der Punkte über die Set-Fkt.
Danke schon mal für eure Hilfe.
ich hätte da ne Frage bezgl Klassenprogrammierung. Wahrscheinlich ist der Haken, den ich suche, ganz einfach, aber ich seh ihn wohl nicht. Und zwar gibt mir der Compeiler einen Fehler bei folgendem an:...Rechteck RE(A,B);... (siehe unten Code). Er sagt, dass ich keinen Zugriff habe auf private Member, dessen Deklaration in der Rechteck-Klasse erfolgte. Ich seh jetzt nicht, was da bei mir falsch ist, denn ich setze den Wert der Punkte über die Set-Fkt.
Danke schon mal für eure Hilfe.
Code:
#include <iostream>
#include <cmath>
using namespace std;
class Punkt {
private:
double x, y;
public:
Punkt(double X=0, double Y=0) { x=X; y=Y; } //Konstruktor
void set (double X , double Y) { x=X; y=Y; } //Methode
double getX () { return x; } // -"-
double getY () { return y; } // -"-
};
class Rechteck {
private:
Punkt P1,P2;
Rechteck(Punkt punkt1, Punkt punkt2) {P1=punkt1, P2=punkt2;};
public:
double Fläche(){
double x1=P1.getX();
double y1= P1.getY();
double x2 =P2.getX();
double y2 =P2.getY();
double x_länge = abs(x2-x1);
double y_länge = abs(y2-y1);
return x_länge*y_länge;};
//double Umfang(umfang);
};
void main() {
// Zwei Variablen vom Typ "Punkt" zur Eingabe der Rechteckkoordinanten
Punkt A, B;
// Eingabe der Koordinaten der Punkte A und B
double x,y;
cout << "Koordinaten x und y Punkt A : "; cin >> x >> y;
A.set(x,y);
cout << "Koordinaten x und y Punkt B : "; cin >> x >> y;
B.set(x,y);
// Erzeugen eines Objekts der Klasse "Rechteck" und
// Berechnung des Umfangs und der Flaeche des Rechteckes
Rechteck RE(A,B);
cout << "Die Rechteckflaeche betraegt " << RE.Fläche() << endl;
//double Umfang;
//RE.Umfang(Umfang);
//cout << "Der Umfang des Rechteckes betraegt " << Umfang << endl;
}