gpt4 book ai didi

c++ - 如何在不使用对象的情况下调用父类成员函数内的子成员函数

转载 作者:行者123 更新时间:2023-12-02 10:27:46 24 4
gpt4 key购买 nike

如何在父类的成员函数内调用子成员函数
这需要作为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()有特定的实现。
如何在子级中使用此实现而不传递任何其他实例。

最佳答案

我还只是看到一种解决方案,所以用my_read()声明了virtual(这稍微修改了基数):

virtual void my_read()
{
std::cout << "Base read\n";
}
解决您的问题。输出为:
Base write
Derived read

关于c++ - 如何在不使用对象的情况下调用父类成员函数内的子成员函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63556506/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com