S
~Airdamn schrieb:
Das Stichwort "friend" wurde ja schon genannt...
...
Ich glaube nicht, dass er das meint/braucht !
Wenn der OP noch nicht verstanden hat, wie man 2 Objekte verknüpft, ist deren Zugriffsschutz (und um mehr kümert sich friend ja nicht) erstmal egal.
Anders gesagt: Auch mit "friend" kommt er nicht umhin, sich eine Referenz oder einen Pointer zu halten....(oder eben die Indirektion über eine Funktion verstehen, wie Du sie implementiert hast)
@Martin: Ich versuche mal, mein Beispiel (die einfachere Version davon) zu erläutern:
struct A {
int i; // Klasse "besitzt" eine Zahl
};
struct B {
int& i; // Klasse "besitzt" eine "Referenz (=Verweis) auf eine Zahl
B(int& x) : i(x) {}
};
int main() {
A a; // ein A-Objekt
B b(a.i); // ein B-Objekt, dessen int-Referenz an die Zahl von a gebunden wird
a.i = 1;
cout << "a.i = " << a.i << ", b.i = " << b.i << "\n";
b.i = 2;
cout << "a.i = " << a.i << ", b.i = " << b.i << "\n";
// Wie Du siehst, werden immer beide gleichzeitig verändert.
return 0;
}
Wenn Du da durchgestiegen bist, können wir das nochmal mit Zeiger und "Funktionsumleitung" durchgehen.
Martin Reindel schrieb:
...
Ich habe schon ein paar Variation in C++ ausprobiert, allerdings ohne nennenswerten Erfolg ;-(...
Vielleicht kannst Du mal einen Versuch hier veröffentlichen und sagen, was daran "erfolglos" war ... sonst raten wir hier noch ewig rum, was Du eigentlich willst, wie Du es bislang versucht hast und was daran nicht klappte.
Gruß,
Simon2.