您的位置:首页 > 其它

通过指针访问类的静态数据成员

2007-08-25 08:14 295 查看
//"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;//直接通过指针访问数据成员
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: