1. 属性初始化
1 | class Student: public Person{ |
2. 多继承,(在 java 里面是不允许多继承的, c++ 是可以的, 但是你也不能有二义性(歧义))
1 | class Person { |
3. 虚继承(二义性)
作用:解决二义性
,确保继承过来的相同属性或者函数,只存在一份拷贝
1 | class A { |
1 | int main(){ |
4. c++ 中的多态
c++
中的多态默认情况下不存在
,如果需要使用多态,一定要加上virtual
关键字
c++中多态分两种:
- 动态多态:子父类继承
- 静态多态:方法的重载
1 | class Activity { |
调用:
1 | Activity *activity1 = new MainActivity(); |
5. 纯虚函数(类似于:java 中的 抽象类,接口)
如果全部都是纯虚函数就类似 java 中的 接口
,否则类似 抽象类
virtual void click() = 0; // 必须要加 = 0
1 | class BaseActivity{ |
6. 构造函数和析构函数
- 构造函数:先父类 -> 再子类
- 析构函数: 先子类 -> 再父类
1 | int main(){ |
7. 模板函数(java 中的泛型)
7.1.定义:
template <typename T> // 模板函数的定义(不能有分号)
1 | template <typename T> // 模板函数的定义(不能有分号) |
7.2. 当普通函数和模板函数同时存在时,优先会调用普通函数
1 | template <typename T> |
打印结果:
1 | int add 被调用 |
8.模板类
语法跟模板函数非常相似
1 | template <typename T> |