Getter und Setter Anwendung
-
Wie kann ich dann besser machen?
-
Was ich erreichen möchte ist folgende:
Ich habe zwei klassen, die von einander nicht wissen.class A { public: .... // wie üblich halt double gePeriodeA(); void setPeriodeA(double periodeA); private: double m_PeriodeA; ..... }; #include "A.h" class B { //Wie üblich void machwas(); }; // cpp von B void B ::machwas() { // hier möchte ich das Value der Methode getPeriodeA() holen // dieses Value entspricht das Value was der Methode bei Klass A hat // zB. wenn die getPeriodeA() "in class A als Value von 100 liefern ", muss ich hier "in class B bei der Methode machwas() " auch das gleiche Wert liefern. // problem: ich weiss es nicht wie ich das machen sollte. }
Danke in voraus
-
MarcelGast schrieb:
class A { public: .... // wie üblich halt double gePeriodeA(); void setPeriodeA(double periodeA); private: double m_PeriodeA; ..... };
Naja, als üblich würde ich es nicht gerade bezeichnen, eine 1:1:1 Korrespondenz von Getter, Setter und Member zu haben.
// hier möchte ich das Value der Methode getPeriodeA() holen
// dieses Value entspricht das Value was der Methode bei Klass A hat
// zB. wenn die getPeriodeA() "in class A als Value von 100 liefern ", muss ich hier "in class B bei der Methode machwas() " auch das gleiche Wert liefern.
// problem: ich weiss es nicht wie ich das machen sollte.Das ist doch genau das, was passiert. Wo ist das Problem? Was sollte denn sonst passieren? Die Frage ist wohl eigentlich, von welchem A-Objekt du redest, denn ich sehe an der Stelle keines.
-
SeppJ schrieb:
Das ist doch genau das, was passiert. Wo ist das Problem?
Ich bekomme einen 0 , wenn ich die methode getPeriodeA() in class B aufrufe.
ist die void setPeriodeA(double periodeA) in A gesetzt bzw. ist der Member variable "m_PeriodeA" gesetzt ?
@ jaSeppJ schrieb:
Was sollte denn sonst passieren?
Der Member variable "m_PeriodeA" ist in A gesetzt
und genau diesem Wert von "m_PeriodeA" möchte ich in B holen.SeppJ schrieb:
Die Frage ist wohl eigentlich, von welchem A-Objekt du redest, denn ich sehe an der Stelle keines
A-Objekt ist doch die ganze Klasse A.
-
MarcelGast schrieb:
A-Objekt ist doch die ganze Klasse A.
Nein, ist es nicht. Und da liegt vermutlich das Problem. Eine Klasse ist eine Beschreibung. Eine Wörterbuchdefinition. Ein Objekt ist eine konkrete Umsetzung, eine Verwirklichung dieser Beschreibung. So wie sich der Lexikonartikel zu "Hund" zu den Objekten auf diesen Bildern verhält. Alle diese Objekte haben gemeinsame Eigenschaften (bei dir: Sie besitzen einen double namens m_PeriodeA und ein paar Funktionen, um auf diesen zuzugreifen), aber bloß weil ein bestimmter Hund braunes Fell hat, haben nicht alle anderen auch braunes Fell.
Du hantierst aufgrund dieses Missverständnisses anscheinend unwissentlich mit mehreren A-Objekten. Bei einem davon hast du den von dir gewünschten Wert gesetzt, aber dann befragst du ein anderes Objekt nach seinem Wert und wunderst dich zu unrecht, dass dieses einen anderen Wert liefert.
-
SeppJ schrieb:
MarcelGast schrieb:
A-Objekt ist doch die ganze Klasse A.
Nein, ist es nicht. Und da liegt vermutlich das Problem. Eine Klasse ist eine Beschreibung. Eine Wörterbuchdefinition. Ein Objekt ist eine konkrete Umsetzung, eine Verwirklichung dieser Beschreibung. So wie sich der Lexikonartikel zu "Hund" zu den Objekten auf diesen Bildern verhält. Alle diese Objekte haben gemeinsame Eigenschaften (bei dir: Sie besitzen einen double namens m_PeriodeA und ein paar Funktionen, um auf diesen zuzugreifen), aber bloß weil ein bestimmter Hund braunes Fell hat, haben nicht alle anderen auch braunes Fell.
Deine Beschreibung ist echt Klasse --> Danke
-
Ich komme immer noch nicht zu meine Ziel:
wenn ich einen Object der Klasse A habe und wollte ich dieses Object in Klasse B holen wie mache ich das?Danke
-
Soll
A
beiB
nur mal kurz auf Besuch vorbeischauen oder langfristig einziehen?
-
Swordfish schrieb:
Soll
A
beiB
nur mal kurz auf Besuch vorbeischauen oder langfristig einziehen?A soll B nur mal kurz besuchen.
-
MarcelGast schrieb:
Swordfish schrieb:
Soll
A
beiB
nur mal kurz auf Besuch vorbeischauen oder langfristig einziehen?A soll B nur mal kurz besuchen.
Dann übergib an B::machwas ein A-Objekt (oder eine Referenz darauf).
-
Was heisst das konkret?
Kannst du bitte mir einen Beispiel geben ?
Sorry
-
Hallo
zB:
class B { public: void machwas(const A& a) { std::cout << a.getPeriodA(); } }
Mfg Marco