C++面向对象 静态成员和友元

第十一章 静态成员和友元函数

11.1 静态成员this

1.C++类当中的静态数据成员仍借用保留字static,可是与以前的静态全局变量,静态局部变量以及静态函数没有关系。指针

2.静态数据成员不占用具体对象的数据空间。对象

3.静态数据成员的建立和销毁处分权不属于任何对象。对象有权利读和写静态成员。静态成员应该在建立任何具体对象以前就能够访问,因此要求静态成员在建立类的任何对象变量

以前就要存在(犹如全局变量、全局对象在main函数前面执行同样)所以静态数据成员应该在主函数以前先定义初始化。数据类型

4.静态数据成员不能没有定义也不能不定义。应该将类的静态数据成员定义和初始化语句放在类的内部实现源文件当中。语法

格式为: 数据类型 类名::静态数据成员名=初始化值;数据

或者:  数据类型 类名::静态数据成员名(初始化值);     (在这里不能再写保留字static)static

5.静态数据成员的生命期是全局的,与是否建立了对象没有关系。文件

6.要访问静态数据成员的时候,能够用对象访问也更通常是用类名访问。

对象名.静态数据成员名

类名::静态数据成员名

7.静态成员函数的声明语法格式:  static 返回类型 静态成员函数名(形式参数表)在类体外定义的时候不能添加保留字static!

8.静态成员函数能够被该类全部对象所使用,可是注意静态成员函数没有隐含传递所谓的“本对象地址”的指针形式参数this,只能显式地传递对象做为参数。

 

11.2友元

1.友元不是类的成员。

2.友元分为友元类和友元函数。

3.友元函数在类声明当中就在前面加一个friend表示函数不是本类成员,而是本类的友元函数。

4.友元函数在处理具体对象的时候须要将对象显式地传递给函数。

4.友元类:声明一个类是另外一个类的友元,成为友元类。友元类当中的全部成员函数都是本类的友元函数,都可以访问本类中的全部成员。

相关文章
相关标签/搜索