你需要析构函数来销毁全局int,float或std :: string变量吗?

Art*_*nix 0 c++ arrays string int destructor

我知道析构函数用于销毁类中的全局指针,但我是否需要它们来销毁像int或std :: string这样的常规变量?

数组如int num [2]怎么样?

应该在析构函数中销毁哪些变量类型?

例如:

class myclass
{
public:
   myclass()
   ~myclass()
   {
      delete num;
      delete ar_num;
      delete str;
   }
private:
   int num;
   std::string str;
   int ar_num[2] = {0,1}; 
}
Run Code Online (Sandbox Code Playgroud)

Som*_*ude 8

你应该只是delete你自己new.既然你不自己分配成员变量,你就不应该(并且因为没有变量是指针,你不能)释放它们delete.

经验法则:如果你这样做,new你需要这样做delete.

  • 有趣的是,他的代码显示了与他的问题无关的内容.这就好像他正在混淆`删除'和破坏:例如,他的析构函数肯定会破坏`str`. (2认同)