Was muss ich anpassen?
-
Hallo,
was muss ich im folgenden Code anpassen?
#include <iostream> using namespace std; struct Punkt { int x; int y; }; class Rechteck { public: Punkt p; double laenge; double breite; Rechteck() // Konstruktor macht nichts { } double flaeche(const Rechteck &Objekt) { return Objekt.laenge * Objekt.breite; } }; int main() { Rechteck Objekt; // Rechteckdaten einlesen cout << endl << " Rechteckdaten einlesen " << endl; cout << "x = "; cin >> Objekt.p.x; cout << " y = "; cin >> Objekt.p.y; cout << " laenge = "; cin >> Objekt.laenge; cout << " breite ="; cin >> Objekt.breite; cout << endl; cout << endl << " Flaeche des Rechtecks: "; cout << Objekt.flaeche(); cout << endl << endl; cin.get(); return 0; }
danke
-
Um was zu erreichen?
-
class Rechteck { public: Punkt p; double laenge; double breite; Rechteck() // Konstruktor macht nichts { } double flaeche() { return laenge * breite; } };
-
Das Ziel ist eigentlich die Referenz einzubauen..
nur weiß nicht was ich noch ändern sollso wie du das machst ist das dann call by value ist will aber call by reference
-
Woher kommen solche 'blöde' Ziele? Call by void ist weder by value noch by reference.
-
es ist eine übung aus einem buch...
daher würde ich gerne wissen was ich ändern muss damit es funktioniert mit der referenz
-
Wie heißt die Aufgabe im Wortlaut?
-
die funktion flaeche() übernimmt ads Rechteck-Objekt, dessen Fläche sie berechnen soll, via call-by-value. das ist unnötig und ineffizient. sinnvoller wäre es, das objekt via call-by-refernce zu übergeben (um den Kopieraufwand zu verringern) und den Funktionsparameter als const zu deklarieren (um sicherzustellen, dass das objekt nicht versehentlich von der funktion verändert wird
-
Sieht doch gelöst aus?
-
ja dann kommt aber immer als fehler das.. flaeche keine parameter anehmen kann..
da es ja eine const ist was muss ich wo ändern damit es läuft?
-
cout << Objekt.flaeche(Objekt);