6 Stimmen

Was ist der Unterschied zwischen diesen beiden Ansätzen der Objektinstanziierung?

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...

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X