-5
Class A{
  public:  
  int variable;
  A(): variable(4) {}
};

class B : public A{

  void  function(){

    A test = new A()
  }
};

在 B 类中调用 new A 会给 A:A() 提供未定义的引用。这个电话合法吗?

4

1 回答 1

1

不——您只为 定义了一个构造函数A,而且它是私有的。A因此,除非它是 的朋友,否则没有任何东西可以构造A,或者您还定义(例如) 的静态成员A来创建实例。

另请注意,new A(本身)没有任何用处(实际上,就目前而言,没有分号,它甚至不会编译)。new产生一个对象的地址——为了真正使用它,你通常将该地址保存到一个指针中。

于 2013-05-22T22:31:18.917 回答