我下面有一些代码:
class base{
private:
base();
int x;
public:
friend class child;
};
class child{
public:
void display(base* b)
{
b->x = 1;
}
};
int main()
{
base* t;
//t = new base;
child c;
c.display(t);
}
我无法分配对象t
。我想测试x
的值。如何测试此代码?
通常只测试类的公共API
因此,如果有必要测试x
的值,那么该值很可能也与其他类相关。您将child
声明为访问x
的好友,这一事实支持了这一事实。
结论:
将x
公开,或者(更好)提供getter和可能的setter方法。
将此代码添加到公共部分的基类:
friend int main();
然后在主函数中,取消对以下行的注释:
t=new base;
但我建议您将基类的构造函数设置为public,而不是private。另外,我真的很好奇你为什么把基类的构造函数设为私有的。