重载特点
- 同一个类中
- 不同的参数列表
覆盖特点
- 位于子类和父类
- 参数列表相同
虚函数特点
- 函数声明时带有关键字 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; }
时间: 2024-10-09 12:59:30