gpt4 book ai didi

c++ - 在 C++ 中混合重写和重载

转载 作者:行者123 更新时间:2023-12-01 22:16:09 24 4
gpt4 key购买 nike

我不明白为什么会出现此错误 error: no matching function for call to ‘Child::m(Mother&)当我尝试编译我的代码时。

据我了解:因为 c 的类型是 Child和 Child::m 有一个类型为 Child 的参数而 m 的类型为 Motherc.m(m)那么需要调用的是 Mother 类中的函数 m()。

class Mother{
public:
void m(const Mother&) {
}
};

class Child: public Mother{
public:
void m(const Child&) {
}
};



int main() {
Mother m;
Child c;
c.m(m);
}

最佳答案

您的Child类没有采用Mother的成员函数m。它被 Child 中声明的 m 隐藏。您可以通过在 Child 中添加 using Mother::m; 来取消隐藏它。

关于c++ - 在 C++ 中混合重写和重载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59513933/

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