Angenommen, ich habe eine Klasse namens A:
Class A
{
...
}
Und was ist der Unterschied zwischen den folgenden 2 Ansätzen, um ein Objekt zu instanziieren:
void main(void)
{
A a; // 1
A *pa=new A(); // 2
}
Nach meinem derzeitigen Kenntnisstand (ich bin mir da noch nicht sicher):
-
Ansatz 1 weist das Objekt a auf dem Stackframe der main()-Methode zu, und so kann dieses Objekt nicht gelöscht werden, weil das Löschen keinen Sinn macht (ich weiß noch nicht warum, kann das jemand erklären?).
-
Ansatz 2 das Objekt a auf dem Heap des Prozesses und auch ein A* vairable zuweisen pa auf dem Stack-Frame der main()-Methode, so dass das Objekt gelöscht werden kann und der pa nach der Löschung null zugewiesen werden kann.
Habe ich Recht? Wenn ich das richtig verstanden habe, kann mir jemand sagen, warum ich die Datenbank nicht löschen kann? a Objekt vom Stapel in Ansatz 1?
Vielen Dank...