目前我有一个包含另一个类并为其某些方法提供包装器并完整提供其他方法的类:
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 个方法 calculate1
和 calculate2
的类,它们都接受 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/