1. 重载overload
- 实现函数重载的条件:
§ 同一个作用域(比如同在基类或者同在派生类)
§ 参数个数不同或者参数类型不同或者参数顺序不同
§ const也可以作为重载条件
- 返回值不作为函数重载的依据
- 函数重载和默认参数一起使用,需要额外注意二义性问题的产生
2. 覆盖重写override
- 派生类函数覆盖重写基类虚函数:
- 规则如下:
§ 不同的作用域(分别位于派生类和基类)
§ 派生类重写基类的virtual函数
§ 函数返回值,函数名字,函数参数,必须和基类中的虚函数一致
3. 隐藏overwrite
- 是指派生类的函数屏蔽了与其同名的基类函数
- 规则如下:
§ 如果派生类的函数与基类的函数同名,但是参数不同,此时不论有无virtual,基类的函数将被隐藏
§ 如果派生类的函数与基类的函数同名,参数也相同,但是基类函数没有virtual关键字,则基类的函数被隐藏
§ 任何时候重新定义基类中的一个重载函数,在基类中所有的其他版本将被自动隐藏(overwrite)
重载overload, 覆盖重写override,隐藏overwrite
最新推荐文章于 2022-03-09 15:34:49 发布