#include <iostream.h>
class Point{
public:
Point(int xx=0,int yy=0)
{
X=xx;
Y=yy;
}
Point(Point &p);
int GetX(){
return X;
}
int GetY(){
return Y;
}
static int countP;
private:
int X,Y;
};
Point::Point(Point &p){
X=p.X;
Y=p.Y;
countP++;
}
int Point::countP=0;
int main(){
int *count=&Point::countP; //指向类的静态成员
Point A(4,5);
Point *p1=&A;
int (Point::*p_GetX)()=&Point::GetX; //指向类的非静态成员函数的指针(声明并赋值)
cout<<(A.*p_GetX)()<<endl; //对象名引用 (对象名.*类成员指针名)(参数表)
cout<<(p1->*p_GetX)()<<endl; //对象指针引用(对象指针名->*类成员指针名)(参数表)
cout<<p1->GetX()<<endl;
cout<<A.GetX()<<endl;
Point B(A);
cout<<*count<<endl;//直接通过指针访问静态数据成员
}
指向类的静态和非静态成员的指针
最新推荐文章于 2021-02-24 15:22:29 发布