如何在父类的成员函数内调用子成员函数 这需要作为gtest和gmock的一部分来实现。
示例:
class Base
{
public:
void my_read()
{
cout << "Base read\n";
}
void my_write()
{
cout << "Base write\n";
my_read();
}
};
class Derived: public Base
{
public:
void my_read()
{
cout << "Derived read\n";
}
};
int main()
{
Derived d;
d.my_write();
return 0;
}
所需的输出是:
Base write
Derived read
实际输出为:
Base write
Base read
由于这是编写测试用例的情况,因此我无法更改代码实现。 考虑到派生类是来自Base的Mock类,我对my_read()有特定的实现。 如何在子级中使用此实现而不传递任何其他实例。
答案 0 :(得分:0)
我还只是看到一个解决方案,用my_read()
声明了virtual
(这对基数有一点修改):
virtual void my_read()
{
std::cout << "Base read\n";
}
解决您的问题。输出为:
Base write
Derived read