Klasse Grundstück / Konstruktor
-
Hi hab da ein C++ Programm mit einer Klasse Grundstück die ich ausimplementieren soll. Nun häng ich aber da dran das ich nicht weiss was ich in den Konstruktor schreiben soll.
Es sind 2 Ecken mit jeweils 2 Koordinaten gegeben. Und man soll auch mit diesen die Fläche des Grundstücks berechnen.Hier ist die h Datei mit der Klasse (die Klasse Baugrunstück nicht beachten)
#ifndef _GRUNDS_H #define _GRUNDS_H #include <iostream> using namespace std; class Grundstueck { private: float Ecke1[2]; float Ecke2[2]; public: Grundstueck(float x1=0,float y1=0, float x2=0, float y2=0); float * const get_Ecke1(); float * const get_Ecke2(); void set_Ecke1(float, float); void set_Ecke2(float, float); float Flaeche(); }; class Baugrundstueck : public Grundstueck { private: float Ecke1[2]; float Ecke2[2]; float preis; public: float kaufpreis(); }; #endif
Hier ist die C Datei mit in der ich die Funktionen ausimplentieren soll und nicht weiss was ich in den Konstruktor Grundstueck::Grundstueck(float, float, float, float) schreiben soll:
#include <iostream> using namespace std; #include "grunds.h" Grundstueck::Grundstueck(float ,float ,float , float ) { }; float * const Grundstueck::get_Ecke1() { return 0; } float * const Grundstueck::get_Ecke2() { return 0; } void Grundstueck::set_Ecke1(float, float) { } void Grundstueck::set_Ecke2(float, float) { } float Grundstueck::Flaeche() { float flaeche; flaeche = 1000; return flaeche; } float Baugrundstueck::kaufpreis() { float kaufpreis; kaufpreis = preis * flaeche; return kaufpreis; }
Vielen Dank für Hilfe oder Rat!
-
Wird davon ausgegangen das das Grundstück generell ein Rechteck/Quadrat ist? Wenn nein, brauchst du eine Spezielle Formel, nach der du die Fläche berechnen sollst, und die bräuchten wir dann noch ehe wir dir helfen können
-
Hm naja ich wollte ja nur wissen was man nun in die Konstruktor reinschreibt.. da braucht man ja noch nichts machen mit Flächen berechnung.
Ist ja egal gehen wir mal davon aus das das Grundstück ein Quadrat ist
thx
-
Tobi85 schrieb:
Hm naja ich wollte ja nur wissen was man nun in die Konstruktor reinschreibt.. da braucht man ja noch nichts machen mit Flächen berechnung.
Ist ja egal gehen wir mal davon aus das das Grundstück ein Quadrat ist
thx
Achso...ok sorry. Naja in etwa sowas hier:
Grundstueck::Grundstueck(float x1 ,float x2 ,float y1 , float y2 ) { Ecke[0] = x1; Ecke[1] = x2; Ecke2[0] = y1; Ecke2[1] = y2; };
Ist zwar relativ statisch, aber du sagtest ja das es nur 2 Ecken á 2 Koordinaten sind.
-
Macht doch nix!!
Ahhhhhh stimmt genau xD
damit die x werte dann verfügbar sind weil die ja private sind!!Ach wie dumm, bin echt nich schlau xD
danke jedenfalls... werde aber bestimmt noch mehr probs haben demnächst xDD
-
Damit Ecke2[2] = y2; auf jeden Fall.
-
LOL Verdammt...da hab ich geschlafen, ich danke dir Fellhuhn, blöder Schusselfehler. :p
-
so nun hab ich noch die funktionen
get_ecke1()
get_ecke2()set_ecke1()
set_ecke2()unn wadd kommt da dannr ein? iwie kenn ich mich mit gettern und settern nich aus-.-
-
Dann lies dir lieber nochmal ein tutorial durch
Weil alles lösen wir dir nicht.
-
ok ok hab schon verstanden :DDD
Danke !!
ich kann ja dann mal posten und ihr sagt dann obs richtig is XDD oder so
-
Hmm hab jetz echt ganz lang rum probiert =(((
ich weiss einfach net was man in die get_ecke() und set_ecke() Funktionen rein schreiben sollBitte kann mir nochmal jemand helfen, danke!!
-
Mit
set_ecke()
wirst du wohl die Ecke setzen müssen, mitget_ecke()
gibst du sie zurück.float Grundstueck::get_ecke1(float a, float b) { ecke1[0] = a; ecke1[1] = b; } // const VORHER - du willst ja den float-Speicherbereich konstant halten, nicht den Zeiger. // Also const float* oder float const* const float* Grundstueck::get_ecke1() { return ecke1; }
Vielleicht könnte man die Koordinaten in einen eigenen Vektor-Struct packen. Dann hast du auch nicht die komische Zeiger-Rückgabe.
struct Koordinate // von mir aus Punkt, Vektor2, oder sonstwas... { float x; float y; Koordinate(float new_x, float new_y); // evtl. Konstruktor };
-
Den Rumpf hab ich ja vom Prof vorgegeben gekriegt und der hat das so mit dem const gemacht ...hm nja ich machs so wie ihr sagt
danke danke danke danke danke!
-
bei dem
float * const Grundstueck::get_Ecke1() { return ecke1; } float * const Grundstueck::get_Ecke2() { return ecke2; }
sagt er nun das ecke1 und ecke 2 nichtdeklarierte Bezeichner seien...
mhm..
-
habs schon xDDD
danke
-
Nun wollte ich noch in der main.cpp die koordinaten ausgeben und evtl mit ihnen rechnen..
wie kann ich das realisieren?
ich hab folgendes:
int main() { Grundstueck g1; g1.Ecke1(); g1.Ecke2(); cout << "Koordinaten des Grundstuecks" << " Kaufpreis des Grundstuecks" << endl; return 0; }
danke für rat
-
int main() { Grundstueck g1; float* e1 = g1.Ecke1(); float* e2 = g1.Ecke2(); float summe = *e1 + *e2; cout << "Koordinaten des Grundstuecks" << " Kaufpreis des Grundstuecks" << endl; return 0; }
-
Hi!
Es geht nun!!!danke an alle!!!! danke für hilfe!!