预测以下C++程序的输出?
#include
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)未定义的行为
(三)编译错误答案: (B)
说明: delete运算符仅适用于使用new运算符分配的对象(请参阅此文章)。如果对象是使用new创建的,那么我们可以删除它,否则行为是不确定的。
有关更多示例,请参见C++中的“删除此内容”。
这个问题的测验
想要从精选的最佳视频中学习和练习问题,请查看《基础知识到高级C的C基础课程》。