一、类的作用域(类作用域、类名作用域、对象作用域)
1、在类中定义的成员变量和成员函数的作用域是整个类,可以在不同的类中使用相同的成员名
2、不能从外部直接访问类的任何成员,public-对象名来调用,static成员函数-指定类名调用
3、发生屏蔽现象,类成员可见域可能小于作用域,可用this指针或者类名::形式访问。
二、类的作用域和可见域
1、全局作用域:在函数和其他类的外部定义的类称为全局类,全局类具有全局作用域
2、类作用域:嵌套类,public(AB的作用域可认为一样)和private (AB作用域认为不一样)
3、块作用域:局部块,作用域块内
4、类名也存在覆盖:覆盖原则,::访问外部类,外部类::嵌套类
三、对象的生存期,可见域,作用域
1、类名无生存期,只有可见域和作用域
2、对象的生存期随着对象的创建而产生,随着对象的撤销而消失
3、对象的生存期,可见域,作用域取决于对象的位置
四、先定义后实例化
1、类的定义要在对象的声明之前,因为编译器要知道需要为类分配多大的内存空间,仅仅对类声明是不够的。
class B;
B objectB;//错误
class B
{
.......//B的定义
};
2、如果不创建B类的对象,而仅仅声明一个指向类型B的指针(或引用),是可行的。
class B;//声明
B* pb=NULL;//创建B类的对象,对
B* pb=new B;//错
class B
{};
五、对象内存释放与堆内存
1、养成new/delete,malloc/free配对编程的习惯,集是释放已经无用的内存。