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

时间:2011-02-27 01:08:52

标签: c++ pointers

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

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

   A* _a;
}

1 个答案:

答案 0 :(得分:7)

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

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

   A* _a;
}