1 Star 0 Fork 0

huyi / TechCPP

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
override和overload的区别有那些.md 949 Bytes
一键复制 编辑 原始数据 按行查看 历史
葛昆仑 提交于 2023-11-06 22:54 . Update: 2 article

函数重载(Overload):当一个作用域内有两个或更多个函数名相同但参数列表不同的函数时,我们就说这些函数构成了重载。参数列表不同可以是参数数量不同,也可以是参数类型不同。函数重载使得我们可以使用一样的函数名来完成类似的操作,提高代码的可读性和易用性。

示例:

void foo(int a);
void foo(double a);

函数覆盖(Override):当一个派生类声明了一个与基类中虚函数完全相同(函数名、参数类型和个数、常量属性、返回值类型)的函数时,我们就说派生类的这个函数覆盖了基类的虚函数。这使得我们可以通过基类指针或引用来调用派生类的函数,实现多态。

示例:

class Base {
public:
    virtual void foo(int a);
};

class Derived : public Base {
public:
    void foo(int a) override; // 覆盖基类的虚函数foo
};
1
https://gitee.com/hylhm/TechCPP.git
git@gitee.com:hylhm/TechCPP.git
hylhm
TechCPP
TechCPP
master

搜索帮助