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

标签 c++ inheritance overloading

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

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/

相关文章:

c++ - 我如何处理算术溢出?

c++ - 类的顶点数组问题

Android1.5运行时库中的Android资源不被库消费者继承

java - 解释在 Kotlin 方法上使用 @JvmOverloads 生成的 Java 代码

php - 在某些对象上调用时重载 count() 的行为

python - 一种优雅的重载 Python 类属性的方法

c++ - 每次执行时都会计算两个常量的乘积吗?

c++ - 让线程池的所有线程执行给定的函数

c++ - 继承真的不影响性能吗?

c++ - 用户定义的构造函数重载与参数父类(super class)的重载参数不匹配