double *p1; //p1为指向double型的指针变量
POINT *p2; //p2为指向POINT型(点类型)的指针变量
int (*p3)[6]; //p3为指向一维数组的指针变量,该一维数组含有6个int型的元素
int (*p4)(); //p4为指向函数的指针变量,该函数的返回值为int型
数组指针:
是一个指针。该指针指向的数据类型是数组类型,存放的是数组的起始地址。
int (*ArrayPtr)[100]; //申明一个数组指针ArrayPtr,指针指向包含100个整形元素的一维数组
指针数组:
一个数组,该数组中的元素是指针。
int *ArrayPtr[100]; //声明一个指针数组,数组名称为PtrArray,数组里面的元素可以存放整形类型变量的地址。
引用
引用是一个变量的别名,是一个目标对象的替代名,它由符号&来引导。对一个变量的引用操作,就是对这个变量的操作。
引用一旦初始化,它就与一个变量绑定在一起,任何对变量的赋值,都是对引用的赋值,同理,任何对引用的赋值,也就是对变量的赋值。
引用和指针的区别
引用和指针在函数参数传递时作用相同,但也有如下不同:
(1)指针是一个变量的地址,而引用则是变量的别名。因此,在程序中表示对象变量时,前者要通过取内容运算符*,而后者可以直接代表;
(2)指针是可变的,它可以忽而指向变量a,忽而指向b,而引用则只能在声明时一次初始化,不能在随后变成别的变量的引用;
(3)引用没有空间的概念。
函数参数的传递
1、值传递
2、地址传递
3、引用传递
按引用传送
内联函数
构造函数和析构函数
当一个对象定义时,C++语言自动调用该对象所属类的构造函数,建立该对象并对其进行初始化;
当一个对象生存期结束时,C++语言会调用该对象所属类的析构函数。
静态成员变量
当一个类定义多个对象时,所有对象的静态成员变量占用同一个内存空间。也就是说,静态成员变量对类的所有对象只有一份,不同的对象使用相同的成员变量。
应用静态数据成员实现数据的共享,使类的各个对象之间可以进行消息的传递。同时,静态数据成员不会破坏数据的封装性,有利于数据的安全通信。
静态成员变量的值是可以更新的,只要有一个对象对静态成员变量进行过更新操作,则静态成员变量的值就被更新了,以后所有对象存取的都是更新后的值。
友元
类的继承与派生
类与类之间的关系
1、关联关系
2、依赖关系
3、聚合关系 整体和部分的关系,如整体类和组成类
4、泛化关系 一般和特殊的关系
多态性
虚函数
重载