Klassen: Austausch von Variablen
-
Ein handwerkliches Problem: ich habe eine Variable in einer Klasse B, die ich in der Instanz von Klasse A haben möchte.
Wie kann ich dies lösen:classB.cpp: #include "classA.h" vector<double> var; object.var var an instanz start schicken main.cpp: classA start; classA.cpp auf var zugreifen
-
lol
-
Dafür gibt's bestimmt eine Lib in Boost.
-
Sagen dir die Stichworte Parameterübergabe und Referenz etwas? Wenn ja, was genau ist dir noch unklar?
-
ich würde das mit dangling pointers lösen.
-
Um auch was hilfreiches hier zu posten...
Liebe/r/s Sunset, liest bitte das hier http://www.c-plusplus.net/forum/200753
-
Sehr witzig. Über echte Hilfe wäre ich sehr dankbar.
Wie kann ich das mit Pointern/Referenzen lösen?Ist die Frage zu einfach?
-
Vereinfacht gesagt, muss einem Objekt vom Typ B das Objekt von Typ A bekannt gemacht werden. Das Objekt vom Typ A kannst du als irgendeine geartete Referenz im Objekt B halten, oder temporär der sendenden Methode von B übergeben, welche dann deinen Vector an das jeweilige Objekt vom A sendet (dort eine Methode aufruft und den Vector als Parameter übergibt).
Du hast auch die Möglichkeit, dem Objekt vom Typ A das Objekt vom Typ B zu übergeben. Das Objekt vom Typ A kann sich dann den Vector über eine Gettermethode holen.
Oder ….
-
Wenn du sinnvolle Antworten haben willst, musst du auch selbst genügend liefern können. Dein Codeausschnitt ist nicht einmal im Ansatz verständlich, da fehlt einfach viel zu viel. Und die Gestellte Frage nach Parameterübergabe und Referenz solltest du auch beantworten können, da die Antwort eine Grundlage dafür ist, ob du das Problem überhaupt verstehen kannst.
Ich versuche aber dennoch zu helfen, wenn gleich eine Instanz einer fremden Klasse nur in absoluten Ausnahmen auf Variablen einer anderen zugreifen können sollte.
// Zur Vereinfachung ignoriere ich Datenkapselung... class B { public: std::vector<double> var; }; class A { public: A(B const & b) { // <-- Lesender Zugriff auf b.var möglich } }; int main() { B object; A start(object); }Ob das aber wirklich das ist was du willst, steht auf einen anderen Blatt. Du beschreibst nicht dein Problem, sondern lieferst nur eine minimale Problemstellung.
Sunset schrieb:
Ist die Frage zu einfach?
Nein, die Information die du lieferst ist zu wenig um dir eine _sinnvolle_ Lösung zu liefern. Ebenso steht der durchaus begründete Verdacht im Raum, das dir bereits absolute Grundlagen fehlen um mit einer Lösung auch wirklich etwas anzufangen (kopieren kann jeder, das ist aber keine Lösung).
-
Dir wurde auch schon gesagt, dass Du BBCode ausgeschaltet hast.
Es hülfe, wenn Du das wieder einschaltetest!
-
Sunset schrieb:
Über echte Hilfe wäre ich sehr dankbar.
Der Hinweis darauf dass deine Frage nicht geeignet ist bei irgendwem den Wunsch zu erwecken dir zu helfen ist keine echte Hilfe?
Sunset schrieb:
Sehr witzig.
Nein, eher traurig.