注:以下为个人见解,有可能错误,欢迎批评指出!
C++的成员分类:
-
按照成员在类中扮的角色分:
数据成员、成员函数。
-
按照成员自身的使用特性分://特性:特殊性质
普通成员、静态成员、常量成员、友元、对象成员
下以成员自身使用特性来分别介绍
一、普通成员
即前面所学,不再做介绍。
二、静态成员
A.静态数据成员
定义格式:static 类型 数据成员名表;//数据成员名表即(一个到多个)变量
说明:
-
- 一般在类中定义为私有成员、保护成员。
- 初始化(分配内存空间):应该在程序开始运行时即生成,必须在任何函数在外进行初始化。
格式:类型 类名::静态数据成员名=初值 //格式类似类外成员函数定义,static 不用管了,不允许使用 - 静态数据成员在一个类(类是定义的对象的集合)中只有一个,属于所有对象,为所有对象所共享。
如:普通数据成员在一个类中可以有多。 ob1.x ob2.x 两个x数据成员(同名)均属于同一类。 - static 只是声明用,在类外不允许再用static
代码:只为说明静态数据成员的定义和初始化
1 #include<iostream> 2 using namespace std; 3 class counter 4 { 5 private: 6 static int count;//静态数据成员的定义 7 }; 8 int counter::count=100;//静态数据成员的初始化
B.静态成员函数
定义格式:在成员函数前加上static即可
调用方法:
①类名::静态成员函数名(实参表);
②对象名.静态成员函数名(实参表);
注:更偏爱①,更能说明静态成员函数属于类而不是属于哪个对象。
说明:
-
- 静态成员函数只能专门访问静态数据成员。
- static 只是声明用,在类外定义静态成员函数时不允许再用static。
- 通常用静态成员函数来处理静态数据成员。
代码:只为说明静态成员函数的定义
1 #include<iostream> 2 using namespace std; 3 class simple 4 { 5 private: