C++笔记之重载和重写辨别

C++笔记之重载和重写辨别

code review!


在C++中,重载(overloading)和重写(overriding)是面向对象编程中的两个重要概念,它们用于不同的目的和场景。

重载(overloading)

重载(Overloading)是指在同一个作用域内,通过改变函数的参数列表来定义具有相同名称但不同参数的多个函数。重载函数可以具有相同的名称,但是参数类型、参数个数或参数顺序必须不同。重载函数的选择是在编译时进行的,根据调用时提供的参数类型来选择合适的函数。

下面是一个重载函数的例子:
在这里插入图片描述

在上面的例子中,print 函数被重载了两次,一次接受整数参数,另一次接受浮点数参数。根据传递的参数类型,编译器会选择合适的重载函数进行调用。

重写(Overriding)

重写(Overriding)是指在派生类中重新定义基类中已有的虚函数。派生类可以通过重写基类的虚函数来提供自己的实现,从而覆盖基类中的实现。重写函数必须具有与基类函数相同的函数签名(包括函数名、参数列表和返回类型)。

下面是一个重写函数的例子:
在这里插入图片描述

在上面的例子中,Shape 类中的 draw 函数被声明为虚函数,并在派生类 Circle 中进行了重写。在 main 函数中,创建了一个指向 Circle 对象的 Shape 指针,并调用了 draw 函数。由于 draw 函数是虚函数,并且指针类型是 Shape*,所以会调用派生类 Circle 中的重写函数。

总结:

  • 重载是指在同一个作用域内,通过改变函数的参数列表来定义具有相同名称但不同参数的多个函数。重载函数的选择是在编译时进行的,根据调用时提供的参数类型来选择合适的函数。
  • 重写是指在派生类中重新定义基类中已有的虚函数。派生类通过重写虚函数来提供自己的实现,从而覆盖基类中的实现。重写函数必须具有与基类函数相同的函数签名。重写的选择是在运行时进行的,根据对象的实际类型来选择合适的函数。

相关推荐

  1. c++ 重构 重载

    2023-12-13 19:50:03       30 阅读
  2. C++ 重载

    2023-12-13 19:50:03       43 阅读
  3. C++中重载的区别

    2023-12-13 19:50:03       12 阅读
  4. C++面向对象:重载、隐藏

    2023-12-13 19:50:03       14 阅读
  5. 重载的区别

    2023-12-13 19:50:03       39 阅读
  6. C++】多态 ⑤ ( 重载 | | 定义 )

    2023-12-13 19:50:03       38 阅读
  7. 方法重载方法的区别

    2023-12-13 19:50:03       29 阅读

最近更新

  1. TCP协议是安全的吗?

    2023-12-13 19:50:03       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2023-12-13 19:50:03       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2023-12-13 19:50:03       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2023-12-13 19:50:03       18 阅读

热门阅读

  1. PyPDF2库对PDF实现读取的应用

    2023-12-13 19:50:03       41 阅读
  2. Android:FragmentHostCallback

    2023-12-13 19:50:03       44 阅读
  3. 挑战52天学小猪佩奇笔记--day19

    2023-12-13 19:50:03       39 阅读
  4. 低代码-传统开发者的噩梦?

    2023-12-13 19:50:03       29 阅读
  5. python版open3d给点云添加高斯噪声

    2023-12-13 19:50:03       32 阅读
  6. (5)快速搭建k8s集群

    2023-12-13 19:50:03       33 阅读
  7. 算法通关村第十七关 | 白银 | 贪心高频问题

    2023-12-13 19:50:03       47 阅读