//"pointer2.h"
class Point
{
public:
Point(int xx=0,int yy=0){X=xx;Y=yy;counterp++;}
Point(Point &p);
int GetX(){return X;}
int GetY(){return Y;}
static int counterp;
private:
int X;
int Y;
};
Point::Point(Point &p)
{
X=p.X;
Y=p.Y;
counterp++;
}
int Point::counterp=0;//静态数据成员定义性说明,不能在构造函数中初始化,只能在体外初始化
#include<iostream.h>
#include "pointer2.h"
//通过指针访问类的静态数据成员
void main()
{
int *count=&Point::counterp;//声明一个int型指针,指向类的静态成员,前面加类名&Point
Point A(4,5);
cout<<"Point A,"<<A.GetX()<<","<<A.GetY();
cout<<"object id="<<*count<<endl;//直接通过指针访问数据成员
Point B(A);
cout<<"point B,"<<B.GetX()<<","<<B.GetY();
cout<<"object id="<<*count<<endl;//直接通过指针访问数据成员
}