Ich möchte eine Klasse schreiben, wo einige der Objekte ein gemeinsames Attribut teilen.C++ Objekte teilen Attribut - verwenden Sie Zeiger oder Referenz
Am Ende habe ich etwas erstellt, das so aussieht: Ich habe eine Klasse A mit einem Vektor von Objekten B und einem Objekt C erstellt, wobei jedes Objekt b einen Verweis auf c speichert.
Class A{
vector<B> v_b;
C c;
}
Class B{
C& c;
}
Die Objekte im Vektor „V_B“ sollten in der Lage sein, „c“ (in c gespeichert hinzufügen, um einen Wert zu einem Vektor) zu ändern, wenn ein Objekt einen Wert hinzufügt, ist es auch für alle anderen objets hinzugefügt werden soll im Vektor "v_b". Das war der Hauptgrund, warum ich dieses Objekt "teilen" wollte.
Am Ende funktioniert es nicht so, wie ich es will und ich muss dieses Problem überdenken.
Meine Frage ist jetzt, ist es besser, C als Referenz zu speichern oder Zeiger zu verwenden?
Am Ende brauche ich wirklich nur den Vektor "v_b", ich bin nicht an der Klasse A interessiert, ich habe A nur verwendet, um ein paar A-Objekte mit "v_b" Vektoren zu erstellen und dann habe ich a Getter alle "v_b" zu bekommen und speichern sie in einem gemeinsamen Vektor.
Beispiel:
vector<b> v;
{
A a1;
a1.add_b_to_vector(B b1); // b1 and b2 should share a common c
a1.add_b_to_vector(B b2);
A a2;
a2.add_b_to_vector(B b3); // b3 and b4 should share a common c
a2.add_b_to_vector(B b4);
v.push_back(a1.get_vector_of_bs()); //lets assume push_back would work
v.push_back(a2.get_vector_of_bs());
}
// do something with v
Danke für Ihre Hilfe
Vielen Dank für Ihre Vorschläge und nützliche Links, ich werde das ausprobieren! – user7431005