让一个对象包含另一个相同类型的对象?

Luc*_*cas 1 c++ pointers

我想创建一个包含相同类型对象的对象.当您创建此类型的对象时,它会创建另一个创建另一个对象,依此类推,直到长度耗尽为止.但是,我得到临时警告的接收地址.我该如何解决这个问题?

class A {
   A(int len) {
      if(len > 0) {
         _a = & A(len-1);
      }
      else {
         _a = NULL;
      }
   }

   A* _a;
}
Run Code Online (Sandbox Code Playgroud)

Mac*_*Mac 7

而不是获取临时的地址,而是创建一个新对象:

class A {
   A(int len) {
      if(len > 0) {
         _a = new A(len-1);
      }
      else {
         _a = NULL;
      }
   }

   A* _a;
}
Run Code Online (Sandbox Code Playgroud)

  • 这就是所描述的.但是不要忘记处理`A`的析构函数,复制构造函数和复制赋值运算符.... (3认同)