Ich habe folgende C++ Klasse:Wann sterben Variablen für öffentliche Mitglieder ab?
class DEF
{
//...
}
class ABC
{
public:
DEF my_def;
~ABC();
//...
}
Und irgendwo:
ABC* abc = new ABC(...);
delete abc;
Meine Frage:
Wird my_def zugänglich sein, nachdem abc löschen Aufruf? Ist es sicher, abc->my_def.somefunc()
nach das Löschen zu tun? -
Wenn Datenmitglieder sterben hat nichts damit zu tun, ob sie öffentlich sind oder nicht. – juanchopanza
_ "Ist es nach dem Löschen sicher abc-> my_def.somefunc()?" _ Nein. Das ist undefiniertes Verhalten. –
Nein. Das Objekt wurde gelöscht. Wenn du 'my_def' behalten willst, solltest du es woanders speichern. –