gpt4 book ai didi

c++ - 使用具有同名方法的派生类的对象访问基类的方法

转载 作者:可可西里 更新时间:2023-11-01 16:28:27 26 4
gpt4 key购买 nike

当使用派生类的对象访问“base”的 foo() 时。

#include <iostream>

class base
{
public:
void foo()
{
std::cout<<"\nHello from foo\n";
}
};

class derived : public base
{
public:
void foo(int k)
{
std::cout<<"\nHello from foo with value = "<<k<<"\n";
}
};
int main()
{
derived d;
d.foo();//error:no matching for derived::foo()
d.foo(10);

}

如何访问派生类中具有同名方法的基类方法。已显示生成的错误。如果我不清楚,我深表歉意,但我觉得我已经把自己说得一清二楚了。提前致谢。

最佳答案

您可以将 using base::foo 添加到您的派生类中:

class derived : public base
{
public:
using base::foo;
void foo(int k)
{
std::cout<<"\nHello from foo with value = "<<k<<"\n";
}
};

编辑: this question 的答案解释了为什么如果没有 using 声明,您的 base::foo() 不能直接从 derived 中使用。

关于c++ - 使用具有同名方法的派生类的对象访问基类的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2437586/

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