3

デストラクタの使用に行き詰まっています 私の簡単なコード構造は次のようなものです

class test
{
   private:
     string code;
     int digit, num_digit;  

   //destructor
   ~test() 
   {
      if(digit >= 0 && digit > num_digit)
      {
         for(unsigned int i=0; i<code.length(); i++) delete &code[i];
      }
   }
};

 <more code> .............
 <more code> .............

 int main()
 {
      Test test1
      test1.~test();
 }

デストラクタの部分を通過すると、コアが異常終了します。Unix コンパイラは Aborted - 'core dumped' と言っています。何か考えはありますか?

4

2 に答える 2

3

new の呼び出しで作成されたポインターのみを削除できます。

スタック上にある文字列へのポインタを削除しています。これにより、コア ダンプが得られます。

于 2013-04-26T08:38:28.093 に答える