21xrx.com
2024-11-10 00:16:37 Sunday
登录
文章检索 我的文章 写文章
C++函数:重写、重载、覆盖
2023-06-27 13:56:51 深夜i     --     --
重写 重载 覆盖 函数 参数

C++ 程序中,函数出现的频率非常高,而且会经常出现函数与函数之间的冲突。因此,C++ 中引入了三个与函数相关的概念:重写(override)、重载(overload)和覆盖(override)。这些概念都是为了解决函数名冲突的问题。

重写(Override)

重写是指子类重写了父类中的一个虚函数的过程。在子类中实现的这个函数会完全替代父类中这个虚函数的所有特性。如果在父类中声明这个函数为纯虚函数,则子类必须实现这个函数,否则编译将报错。

重载(Overload)

重载是指在同一个类中,出现了两个或多个函数名相同,但是参数列表不同的函数。重载函数在类的成员函数中只有名称一样,而参数不同(参数个数、类型、顺序),就可以使用相同的函数名,编译器会根据传入的参数类型和数量来判断调用哪个函数。

覆盖(Override)

覆盖指的是子类对父类中的非虚函数进行覆盖,也就是子类中与父类中相同名称的函数,把父类的同名函数覆盖掉,不管父类中的成员函数是 public、protected 还是 private 级别的都可以被子类的同名函数覆盖掉。

总结

重写、重载和覆盖是 C++ 中的三个重要概念,它们都是为了解决函数重名和重复定义的问题。重写适用于虚函数;重载适用于同名函数具备不同的参数列表;覆盖适用于子类修改父类中与之同名的成员函数。使用这些概念可以让 C++ 程序更加规范和灵活。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复