我有一个名为Foo的类。我只想允许Bar创建它,所以我将它的构造函数设为私有,并将Bar设为其友元。但现在如何测试Foo的公共方法(例如getValue)?我在单元测试文件中没有创建它的实例的方法。
class Foo final
{
public:
int getValue();
private:
friend class Bar;
Foo(int value);
};
class Bar
{
protected:
Foo createFoo(int value);
};
-fno-access-control
编译您的单元测试,这将允许您访问私有成员。 - Praetorian