- 对于头文件利用声明的依存性替代定义的依存性
定义的依存性
编译器对其定义时根据类型推算出该对象大小
#include"Person"
int x;
Person person;
声明的依存性
使用指针来延迟编译器对其所指类型的推演,编译器不知道指针会指向何处,推迟到运行时动态分配。前置声明的person不能去直接调用Person,前置声明是没有对象大小的,也不能以此去进行类型转换。类型转换同样需要提前知道类型大小
函数的形参和返回值是可以前置声明的
//不引入包含Person的头文件,而使用前置声明
class Person ;
int x;
Person *person;//运行时处理
//Person *person=new Person ;//右边是需要定义式的
person->Get()//error