C++中Overload、Overwrite及Override的区别
来源:互联网 发布:java中重载 编辑:程序博客网 时间:2024/05/20 05:25
Overload(重载):在C++程序中,可以将语义、功能相似的几个函数用同一个名字表示,但参数或返回值不同(包括类型、顺序不同),即函数重载。
(1)相同的范围(在同一个类中);
(2)函数名字相同;
(3)参数不同;
(4)virtual 关键字可有可无。
Override(覆盖):是指派生类函数覆盖基类函数,特征是:
(1)不同的范围(分别位于派生类与基类);
(2)函数名字相同;
(3)参数相同;
(4)基类函数必须有virtual 关键字。
Overwrite(重写):是指派生类的函数屏蔽了与其同名的基类函数,规则如下:
(1)如果派生类的函数与基类的函数同名,但是参数不同。此时,不论有无virtual关键字,基类的函数将被隐藏(注意别与重载混淆)。
(2)如果派生类的函数与基类的函数同名,并且参数也相同,但是基类函数没有virtual关键字。此时,基类的函数被隐藏(注意别与覆盖混淆)。
特别注意
如果基类有某个函数的多个重载(overload)版本,而你在子类中重写(overwrite)了其中的一个,或是子类添加新的函数版本,则所有基类的重载版本都被遮蔽。所以,正常情况下,在子类中应重写基类中的所有重载版本。
具体地讲,继承类中的重载和重写都包含了重写的涵义,即只要函数名一样,基类的函数版本就会被遮蔽,所以,在派生类中要保持基类的重载版本,就应该重写所有基类的重载版本。重载只在当当前类中有效,继承会失去重载的特性。也就是说,把基类的重载函数放在继承类里,就必须重写。
- C++中Overload、Overwrite及Override的区别
- C++中Overload、Overwrite及Override的区别
- C++中Overload、Overwrite及Override的区别
- C++中Overload、Overwrite及Override的区别
- C++中override、overwrite、overload的区别
- C++中overload、override、overwrite的区别
- C++中overload,override,overwrite的区别
- Overload Overwrite Override的区别
- override overwrite overload 区别
- Overload、Overwrite Override 区别
- C++中 overload 、override、overwrite 之间的区别
- C++中 overload 、override、overwrite 之间的区别
- C++中 overload 、override、overwrite 之间的区别
- C++中overload,override,overwrite的区别详细解析
- C++中overload,override,overwrite的区别详细解析
- C++中 overload 、override、overwrite 之间的区别
- C++中Overload、Overwrite和Override区别
- java中overload、override、overwrite区别
- ZooKeeper搭建系列集 (这套很全,也很详细)
- 加密---Cipher
- UTC = GMT ; UTC + 8 = Beijing
- 用.NET 操作Excel编程;
- 随想录(以师带徒的原则)
- C++中Overload、Overwrite及Override的区别
- 复习struts2之请求参数接收
- win7 下面 xp mode 无法ping 通
- HTML中Post和Get区别
- Android编译错误:You have tried to change the API from what has been previously approved.
- HDU-1753 实数高精度加法
- IBM RSA (IBM rational software architect ) V8 建模学习之四 C++类图转换成c++代码
- Linux下java web服务器搭建(MySQL5.1)
- 用 verbose GC 分析内存问题