类的静态成员分为静态数据成员和静态函数成员。先来看看类的静态数据成员:一、类的静态数据成员有什么用?
类实现了数据和数据的操作封装在一起,每个类的对象都会分配好内存来保存自己的数据成员,但是往往某个类的众多对象需要一些数据共享,比如定义了Person类,实例化了person1,person2,person3,但是我现在想知道我到底实例化了多少个person对象,怎么办?一个想法是定义一个count数据,这个数据为这些person对象共享,每个person都可以访问该count数据成员,这就是类的静态数据成员的作用:静态成员是解决同一个类的不同对象之间数据和函数共享的问题。
二、怎么定义一个静态数据成员用关键字 static 来定义,比如 static int count .三、实例看如下代码:class Point { public:Point(int m=0, int n=0 )
{ this->x = m ;this->y = n ;this->count ++ ;} ~Point() { this->count —— ; } int getX() { return this->x ;} int getY() { return this->y ;} void ShowCount() { cout << "The numbers of count are :" << this->count << endl;} private:int x ;int y ;static int count ;}
int Point::count = 0 ; count 就被定义为 静态成员变量,那么 count 就可以为所有的Point 对象所共享,通过对象名。ShowCount 来访问 count:Point A(4,5) ;A.ShowCount() ; // 1 Point B(A) ;B.ShowCount() // 2 count 为 静态成员,每个对象的创建和销毁都会影响到count .四、静态数据成员需要注意的地方1. 静态数据成员不属于任何一个对象,它只属于类。