C++这个指针问题5

预测下面的C++程序的输出?

null

#include<iostream>
using namespace std;
class Test
{
private :
int x;
public :
Test() {x = 0;}
void destroy()  { delete this ; }
void print() { cout << "x = " << x; }
};
int main()
{
Test obj;
obj.destroy();
obj.print();
return 0;
}


(A) x=0 (B) 未定义的行为 (C) 编译错误 答复: (B) 说明: delete运算符仅适用于使用运算符new分配的对象(请参见 这篇帖子 ).如果对象是使用new创建的,那么我们可以删除它,否则行为是未定义的。

看见 C++中的“删除” 更多例子。 这个问题的小测验

© 版权声明
THE END
喜欢就支持一下吧
点赞6 分享