[英]Destructor direct call in C++
因此下面的代碼。
class A
{
int x;
public:
A() {x = 3;}
};
int main()
{
void* mem = operator new(sizeof(A));
A* obj = static_cast<A*>(new(mem)(A));
std::cout << obj->x << std::endl;
obj->A::~A();
std::cout << obj->x << std::endl;
}
我的第一個問題是:為什么我可以直接調用A的析構函數; 我的第二個問題是:為什么輸出是:
3
3
在析構函數調用后,對象obj不會被刪除? 第二個困擾我。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.