1.C++在非OOP方面的扩充

2.函数重载回顾
注意:下图爆红代码,编译器无法正确匹配函数(存在多义性)。

正常运行。

3.作用域运算符::

4.new和delete

说明:这里p已经声明为int*指针,不需要特意强调new int,编译器会自动识别。

强调:
使用new可以动态开辟数组空间,但是必须提供数组每一维的大小,如:int* p = new int[2][3][4];
new可以为简单变量初始化,如:int* p = new int(5),但是不能对数组初始化;
使用delete释放动态数组空间,如:delete []p,不需要指出所删除数组的维数和大小。
5.引用
不允许建立void类型的引用,因为void本质上不是一个类型;
不能建立数组的引用,不能建立引用的引用。
demo1:

demo2:

6.对象数组与数组指针
对象数组及其初始化
demo1:

demo2:

demo3:

demo4:

对象指针

this指针
作用基本同Java的this(这里其实没必要加上)

7.向函数传递对象


8.构造函数与析构函数的执行次序
构造函数在对象被创建时调用,析构函数在对象被删除前调用。
后调用的对象先调用析构函数,与构造函数的执行顺序相反。
1 |
|