1.函数重载、隐藏和覆盖区别
共同点:函数名相同
位置:
- 发生在同一个类当中——重载。函数的参数类型或者数量不同,仅返回值不同则不能成为重载;
- 发生在派生类与基类之间——覆盖或者隐藏
覆盖与隐藏区别
-覆盖:要求派生类与基类中的两个函数完全相同(参数类型、个数、返回值完全相同,即声明完全相同)且基类中为虚函数;
-隐藏:覆盖以外的情况即为隐藏;
2.面向对象的四个特征
抽象、继承、封装、多态
C++中的抽象类
(1)含有纯虚函数的类.纯虚函数没有实现部分,无法创建对象。
(2)构造函数或者析构函数的访问限定定义为protected的类。这样的类无法创建一个对象或者无法析构一个对象;
C++中多态性的体现
-运行时的多态性:通过类的继承与虚函数实现;
-编译时的多态性:通过函数的重载与运算符的重载实现;