C++在继承时重命名函数参数?

标签 c++ inheritance overriding

如果我重写了一个虚方法,我可以更改子方法中参数的名称吗?相同类型的参数,只需将 say (int num) 更改为 (int n)?

这个例子有效吗?

class Animal
{
    public:
    virtual int foo(int num) {
        return num + 1;
    }
};

class Cat : public Animal
{
    public:
    int foo(int n) override {
        return n - 1;
    }
};

如果是,为什么参数名称无关紧要?

最佳答案

参数的名称无关紧要。

唯一必须匹配的是参数的类型。

还有类方法本身是否是const。并且方法的返回值必须匹配。

关于C++在继承时重命名函数参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41471069/

相关文章:

c++ - 为什么 std::remove_if 认为 shared_ptr<T> 是谓词?

浮点的 C++ 模板特化

c++ - 使用ffmpeg example remuxing.c 录制rtmp 直播流到mp4 文件,它添加一个空的elst 框,如何禁止它?

oop - 如何获取从 django 中的同一父类继承的所有实例

c# - 继承窗体上的 OnLoad 事件不会被调用

c# - Visual Basic .Net 中等效的公共(public)虚拟外部字符串

c++ - 为什么从右值 int vector 的元素 decltype(auto) 的类型推导是 int& ?

c++ - 在 C++ 中复制仅具有基类指针的派生类

c# - 为什么不让一切都变成 'virtual' 呢?

c++ - 重写关键字在编译时抛出错误