标签:
重载特点
同一个类中
不同的参数列表
覆盖特点
位于子类和父类
参数列表相同
虚函数特点
函数声明时带有关键字 virtual
通过父类指针完成多态
隐藏特点
位于子类和父类
函数名相同
若参数不同。此时,不论有无 virtual 关键字,父类的函数将被隐藏(注意别与重载混淆)
class Fruit { public: void priName(string s) { cout<<"水果"<<endl; } }; class Apple :public Fruit { public: void priName(int a) { cout<<"苹果"<<endl; } }; int main(int argc, char *argv[]) { Apple apple; apple.priName("266");//error return 0; }
3. 若参数相同,但是父类函数没有 virtual关键字。此时,父类的函数被隐藏(注意别与覆盖混淆)
class Fruit { public: void priName(int s) { cout<<"水果"<<endl; } }; class Apple :public Fruit { public: void priName(int a) { cout<<"苹果"<<endl; } }; int main(int argc, char *argv[]) { Apple apple; apple.priName("565");//error return 0; }
标签:
原文地址:http://my.oschina.net/u/1391394/blog/416198