重载:通过函数重载实现类的多态特性,其特征:
(1)同一作用域内(同一类中)。
(2)相同的函数名。
(3)参数与返回类型不同;仅返回类型不同,不是重载函数。
(4)virtual关键字不影响。
覆盖:通过函数覆盖实现类的继承特性,其特征:
(1)不同作用域(非同一类中)。
(2)函数名、参数都相同。
(3)基类中的函数须有virtual关键字。
隐藏:
(1)子类和父类有同一函数名,但是参数不相同,基类的函数被隐藏,与上述重载特性第一点区别。
(2)子类与父类有统一函数,名和参数都相同,但是基类的函数无virtual关键字,则被隐藏,与上述覆盖特性第三点区别。
常量指针与指针常量
const int* p; //常量指针,指向常量的指针,指针不可修改其所指地址的内容,但可以重新指向新的地址。
int* const p; //指针常量,指针变量为常量,即其所指地址不可改变,可修改其所指地址上的内容。
typedef的使用
缺陷一:
typedef int* pINT;
const pINT p;//此处很有可能给人的误解是const int* p,其实这里的意思是int* const p。p为指针常量。
缺陷二:(其是一个存储类型的关键字)
typedef static int INT2; //会提示编辑失败,指定了一个以上的存储类。