相关疑难解决方法(0)

重载vs重写

我对这两个术语感到有些困惑,并且很乐意澄清一些疑问.

据我所知,function overloading意味着在同一个类中具有多个方法,这些方法具有相同的名称但是具有不同数量的参数,不同类型的参数或参数序列,而不管返回类型如何对函数的错位名称没有影响.

上述定义是否还包括"....在同一个类或相关类中(通过继承相关)......"

并且Function Overriding与虚函数,相同的方法签名(在Base类中声明为虚拟)和在子类中实现的重写有关.

我想知道一个场景,以下是代码:

#include <iostream>

class A
{
    public:
    void doSomething(int i, int j)
    {
        cout<<"\nInside A::doSomething\n";
    }
};

class B: public A
{
    public:
    void doSomething(int i, int j)
    {
        cout<<"\nInside B::doSomething\n";

    }
};

int main()
{
    B obj;
    obj.doSomething(1,2);
    return 0;

} 
Run Code Online (Sandbox Code Playgroud)

在上述情况下,什么可以说:
在派生类的方法,overrides在基类的方法OR
中派生类的方法,overloads在基类的方法

重载是否适用于类范围,并且覆盖术语是否不一定适用于虚函数?

我认为它应该是overrides,但只需要澄清,因为我碰巧记得术语覆盖被特别用于虚函数.

c++ overriding overloading

12
推荐指数
4
解决办法
5655
查看次数

标签 统计

c++ ×1

overloading ×1

overriding ×1