五、 类的静态函数成员
在上面的例子中,每个对象都与一个 ShowCount 的拷贝,可以与 类的静态数据成员一样,设为共享方式。这就需要定义为静态函数成员了。
相关定义如下:
class Point
{
public:
Point( int m , int n ) { x = m ; y = n ; count++ ;}
Point( Point & p) ;
~Point() { count-- ;}
static void ShowCount() { cout << count << endl; }
private:
int x ;
int y ;
static int count ;
}
int Point::count = 0 ; // 注意初始化的方式
{
public:
Point( int m , int n ) { x = m ; y = n ; count++ ;}
Point( Point & p) ;
~Point() { count-- ;}
static void ShowCount() { cout << count << endl; }
private:
int x ;
int y ;
static int count ;
}
int Point::count = 0 ; // 注意初始化的方式
在如下代码中:
Point A(4,5) ;
A.ShowCount() ; // 通过对象名引用
Point:: ShowCount() // 通过类名来引用,推荐使用这个方式
A.ShowCount() ; // 通过对象名引用
Point:: ShowCount() // 通过类名来引用,推荐使用这个方式
需要注意的是,静态成员函数中不可以使用 this 指针,一般是用来访问 静态数据成员的,不做其他用途。(访问非静态成员需要通过参数传递对象名,通过对象名来访问)。