静态数据成员与静态成员函数

    静态属性不是类中每个对象拥有的,而是共有的。由于静态成员逃离了对象而存在的性质,所以该实体应该在所有对象产生之前产生,更适合的时机是在程序启动的时候做初始化。初始化时候不可重复上static,但是要加上类名空间。该实体在程序中的唯一性,要求他不可以和类的定义放在头文件中,但是它确实是类的成员,所以放在类实现中最合适。如下:

//--------------------Student.h ---类定义的文件

class Student{

private:

   static int num;

}

//-------------------Student.cpp---内实现的文件

#include"Student.h"

Student::number=0;

由于静态数据成员不属于任何一个对象,为了安全起见将静态数据成员定义为私有的,于是如何去访问它呢?同样的可以定义静态成员函数来访问它,用静态成员函数去访问静态数据是最合适不过的,在类中声明静态成员函数,要在成员函数前加上static关键字,可以用对象来调用他,也可以用雷明加域操作符来调用。静态成员函数实现部位应该和成员函数位置相同,在类外部实现时要免去static,但是域操作符是必须的。

//--------------------Student.h ---类定义的文件

class Student{

private:

   static int num;

public:

static void Print();

}

//-------------------Student.cpp---内实现的文件

#include"Student.h"

Student::number=0;

void Student::Print(){

   cout<<num++<<endl;

}

posted @ 2015-12-29 18:28  曹孟德  阅读(383)  评论(0编辑  收藏  举报