Class A{
public:
int variable;
A(): variable(4) {}
};
class B : public A{
void function(){
A test = new A()
}
};
在B类中调用新的A给出了对A:A()的未定义引用。 这个电话合法吗?
答案 0 :(得分:1)
不 - 你只为A
定义了一个构造函数,它是私有的。因此,除非A
的朋友,或者您还定义(例如)A
的静态成员来创建实例,否则无法构造A
。
还要注意new A
(本身)没有任何用处(实际上,因为它现在没有分号,它甚至不会编译)。 new
生成对象的地址 - 要真正使用它,通常将该地址保存到指针中。