预测下面的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创建的,那么我们可以删除它,否则行为是未定义的。
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END