Zeiger auf Klassenmember an andere Klasse übergeben?
Verfasst: 29. April 2009 15:59
Hallo,
ich hab ein Problem, was sich glaub ich nicht in 2 Sätzen zusammenfassen lässt. Ich habe ein sehr umfangreiches Programm und versuche mal die wichtigen Dinge zu posten:
Natürlich ist das bei mir einwenig komplexer, aber der grundaufbau ist wohl gleich:
Klasse A verwaltet eine große Menge an Daten, die im Array stehen.
Klasse B soll den eigentlichen Lesevorgang (von Netzwerk-Sockets) durchführen und alles gelesene dann in das Array speichern.
Der grundsätzliche Programmablauf funktioniert auch. Allerdings schaff ich es nicht, der readClassA-Funktion (die ja in Klasse B definiert ist) den zeiger auf das Array zu übergeben.
Es kommen immer folgende Fehlermeldungen:
wenn ich z.B. void readClassA(ClassA::daten &pointer); in ClassB zu definierten, sagt der mir, dass ClassA nicht declariert ist.
Könnt ihr mir helfen, dieses Problem zu lösen? Habt ihr irgendwelche Tips?
Vielen Dank!
P.S.: Wenn ihr vorschläge zu ner Besseren Überschrift habt....immer her damit. Ich wusste nicht, wie ich das Problem in einem Satz beschreiben soll...
ich hab ein Problem, was sich glaub ich nicht in 2 Sätzen zusammenfassen lässt. Ich habe ein sehr umfangreiches Programm und versuche mal die wichtigen Dinge zu posten:
Code: Alles auswählen
class ClassA{
public:
ClassA();
private:
struct daten{
int xyz;
...
}
struct daten *pointer;
}
Code: Alles auswählen
class ClassB{
public:
ClassB();
void readClassA(struct daten &pointer);
}
Code: Alles auswählen
ClassA::ClassA(){
pointer = new daten[10]
klasseB=new ClassB;
klasseB->readClassA(pointer);
...
}
Code: Alles auswählen
void ClassB::readClassA(struct daten &pointer){
...
}
Klasse A verwaltet eine große Menge an Daten, die im Array stehen.
Klasse B soll den eigentlichen Lesevorgang (von Netzwerk-Sockets) durchführen und alles gelesene dann in das Array speichern.
Der grundsätzliche Programmablauf funktioniert auch. Allerdings schaff ich es nicht, der readClassA-Funktion (die ja in Klasse B definiert ist) den zeiger auf das Array zu übergeben.
Es kommen immer folgende Fehlermeldungen:
Ich habe schon vieles ausprobiert... Referenzen, Zeiger aber irgendwie will das alles nicht...no matching function for call to ClassB::readClassA(ClassA::daten&)
canidates are: void ClassB::readClassA(daten&)
wenn ich z.B. void readClassA(ClassA::daten &pointer); in ClassB zu definierten, sagt der mir, dass ClassA nicht declariert ist.
Könnt ihr mir helfen, dieses Problem zu lösen? Habt ihr irgendwelche Tips?
Vielen Dank!
P.S.: Wenn ihr vorschläge zu ner Besseren Überschrift habt....immer her damit. Ich wusste nicht, wie ich das Problem in einem Satz beschreiben soll...