C++ 错误集整理之 error: is private within this context
代码实现如下
//类A
class A
{
~A();
A();
};
//类B
class B
{
~B();
B();
private:
A a;
};
编译结果为
error: ‘A::~A()’ is private within this context
原因分析是因为类B调度类A时需要处理类A的构造方法和析构方法,但由于构造方法和析构方法均为默认为私有的,导致类B无法正常的调度类A,所以需要将构造方法和析构方法的权限设置为public(公有的).
class A
{
public: //修改为public权限
~A();
A();
};
//类B
class B
{
~B();
B();
private:
A a;
};