class MyClass
{
public:
MyClass()
{
std::cout << "MyClass Constructor" << std::endl;
}
~MyClass()
{
std::cout << "MyClass Destructor" << std::endl;
}
};
int main()
{
MyClass* p = new MyClass();
}
是什麼 主叫P->〜MyClass的()之間的差值; 或 刪除p;Differnace和 「P->〜MyClass的()」
兩者都調用析構函數。
'delete'也會將分配的內存返回給操作系統。我不認爲這樣明確地調用析構函數是合法的,無論如何 –
@ Code-Apprentice明確地調用析構函數是合法的,但在這種情況下,你不能顯式地調用析構函數,因爲你需要'刪除'內存,'delete'調用析構函數,析構函數會兩次調用析構函數,這是非法的。 – Justin
@ Code-Apprentice如果它在任何地方都不合法,語言不會允許你編寫它 –