gpt4 book ai didi

C++继承与重载,重载后调用基方法

转载 作者:行者123 更新时间:2023-11-30 01:17:06 32 4
gpt4 key购买 nike

目前我有一个包含另一个类并为其某些方法提供包装器并完整提供其他方法的类:

class bar {
public:

int calculate1(int a, int b) {
return f.calculate1(a, b);
}

int calculate2(int a, int b) {
a ++;
b ++;
return f.calculate2(a, b);
}

private:
foo f
}

foo 是一个包含 2 个方法 calculate1calculate2 的类,它们都接受 2 个 int 并返回一个 int

有没有更好的方法通过继承来实现这一点?如果能够摆脱这个就好了:

    int calculate1(int a, int b) {
return f.calculate1(a, b);
}

但这需要调用它正在重载的函数,我不确定该怎么做:

    int calculate2(int a, int b) {
a ++;
b ++;
return f.calculate2(a, b);
}

这是否可能或可取?在这种情况下是否可以使用其他方法?

如果我的某些代码有点不可靠,我深表歉意,因为您可以看出我是 C++ 的新手,但我希望我能理解您的意思。

最佳答案

要调用基类方法,请使用限定条件:

return foo::calculate1(a, b);

如果您希望以多态方式调用它们,请记住确保您的基类方法是虚拟的

关于C++继承与重载,重载后调用基方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25282310/

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