我知道这对UT来说不是很好的类设计,但是...
如果有需要测试的受保护变量,那么仅使用FRIEND_TEST在测试中获取/设置这些变量会更好吗?还是应该为每个变量创建getter和setter方法?
例如
class Dog
{
public:
//some methods
protected:
int age;
std::string color;
std::string breed
}
声明FRIEND_TEST不需要太多开销,这与我将为每个== 6个新方法创建getter和setter的方法不同!但是更正确的解决方案是什么?
答案 0 :(得分:2)
如果您只需要一个班级即可访问您的受保护成员,请使用好友班级。这是C ++中的绝对规则。
在类中添加getter和setter只会增加开销,并且在最佳情况下,编译器会将其删除。
如果您想了解有关朋友课程的更多信息,this链接将很有用。
答案 1 :(得分:0)