文章目录
- 1.实参与形参
- 2.参数列表、初始化列表
- 3.实例、方法、属性、构造器、访问器、设置器
- 4.重写、重载、隐藏
- 5.继承与多态原理
- 6.三种初始化方法
1.实参与形参
实参与形参:调用函数时传递的是实际参数,被调函数里接收的是形式参数。
2.参数列表、初始化列表
1.括号里的形参,叫参数列表
2.冒号后的,叫初始化列表。作用是直接在同一行内初始化成员变量,节省代码行数,更简洁。
class MyClass {int a;double b;public:MyClass(int a,double b): a(a),b(b) {// 使用初始化列表直接初始化成员变量a和b}
};
3.实例、方法、属性、构造器、访问器、设置器
实例:类创建的对象
实例化:通过一个类,创建一个对象
方法(Method):函数
属性(Attribute):成员变量
构造器:构造函数
访问器:getXXX()
设置器:setXXX()
访问器和设置器,就是用public的方法,访问private的函数
4.重写、重载、隐藏
1.覆盖/重写(override)
函数名相同,参数列表也相同。
子类中有父类的同名函数。
2.重载(overload)
函数名相同,作用域相同,参数列表不同。
3.隐藏(屏蔽)
若子类中有父类的同名函数,则优先调用子类的,将父类隐藏。
若要调用父类的,必须加 父类名 作用域限定符
5.继承与多态原理
1.继承
vbptr指向vbtable:虚基指针指向虚基表
把丑陋的内部实现藏在一个外壳里只留下一个方便易用的接口,就叫封装
2.多态
①虚函数(表)指针:vfptr
②虚函数表:vftable
6.三种初始化方法
1.直接初始化
用小括号进行初始化
m_Name = new string(name);
2.初始化列表
Sub(int x, int y, int z): Base(x,y),z(z) //冒号后为初始化列表
{}
3.拷贝初始化
最基础的,在类内或函数体内用=
赋值进行初始化