Wenn ich eine Klasse haben:Verhalten, wenn Sie setzen ein Element eines Vektors der Klassen gleich einer Klasse
Class aClass
{
vector<aClass> connections;
}
mit allem anderen richtig erklärt, wenn ich tun waren:
aClass a = new aClass();
aClass b = new aClass();
b.connections.push_back(a);
würde dies einen Verweis auf a
erstellen oder würde es die Klasse duplizieren.
Ich möchte, dass es ein Zeiger auf die Klasse ist, aber ich war mir nicht sicher, ob ich zusätzliche Syntax benötigt, um dies zu gewährleisten. Ich erinnere mich zu lesen, dass, wenn eine Klasse aClass a = new aClass
deklariert wird, es einen Zeiger auf das Objekt im Heap erstellt, aber ich war mir nicht sicher, was hier passieren würde.
Als Referenz ist dies für so etwas wie eine verknüpfte Liste.
Auch wenn jemand einen besseren Titel für diese Frage vorstellen kann, gehen Sie voran und bearbeiten Sie es.
Danke, ich habe seit ein paar Jahren nicht viel C++ Programmierung gemacht, also konnte ich mich nicht genau erinnern, was hier passieren würde. – Cjen1
Als eine Frage über Zeiger, wenn ein Programm geschlossen ist und es noch Zeiger gibt, die auf Objekte verweisen, werden diese Objekte gelöscht und Müll gesammelt? oder werden sie einen Speicherverlust verursachen – Cjen1
@ Cjen1 Wenn Sie rohen Zeiger verwenden, '' 'neues' '' st '' löscht'' es, dann verursacht Speicherverlust. Deshalb habe ich intelligente Zeiger vorgeschlagen. – songyuanyao