调用父类的构造函数给出undefined

时间:2013-05-22 22:28:01

标签: c++ inheritance constructor

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

class B : public A{

  void  function(){

    A test = new A()
  }
};

在B类中调用新的A给出了对A:A()的未定义引用。 这个电话合法吗?

1 个答案:

答案 0 :(得分:1)

不 - 你只为A定义了一个构造函数,它是私有的。因此,除非A的朋友,或者您还定义(例如)A的静态成员来创建实例,否则无法构造A

还要注意new A(本身)没有任何用处(实际上,因为它现在没有分号,它甚至不会编译)。 new生成对象的地址 - 要真正使用它,通常将该地址保存到指针中。