A-grain-of-wheat

关于函数重载和函数重写的感想

在C++中存在两种比较难理解的概念

1、函数重载
首先在C++中,如果两个函数的作用域相同,然后两个函数的名字相同但是形参不同,这样的两个函数是会形成重载关系的。
但是对是否是virtual的要求可有可无,而且对返回值类型的要求也可有可无。
有一点值得注意的是const会影响函数的重载,因为在多个参数的函数中,const会影响参数的优先顺序从而导致两个函数的参数在同一队列,这样就会产生错误,但是这种错误是发生在调用过程中的,也就是说如果不对相关联的函数进行调用,是不会发生错误的。

2、函数重写
函数重写在C++中是属于不同的两个类中,而且一定要是虚函数(virtual),如果存在函数名相同、形参列表相同,返回值类型相同(可以不同,但是必须是可以经过某种方式进行转换的),就会形成重写,

重写和覆盖本质上是同一中语法的不同名称而已。所以在期间一定是发生过继承关系的父子类之间才会形成重写(覆盖)。否则就有可能形成重写

posted on 2019-05-23 10:40  A-grain-of-wheat  阅读(858)  评论(0编辑  收藏  举报

导航