📜  C ++ |这个指针|问题5

📅  最后修改于: 2021-06-01 02:55:55             🧑  作者: Mango

预测以下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基础课程》。