demo_object_pointer_2.cpp
来自「对于一个初涉VC++的人来书」· C++ 代码 · 共 35 行
CPP
35 行
//***************************************************
//指向类的成员的指针
//指向数据成员的指针: <类型说明符><类名>::*<指针名>=&<类名>::<公有数据成员名>;
//指向函数成员的指针: <类型说明符>(<类名>::*<指针名>)(<参数表>)=<类名>::<公有函数成员名>;
//***************************************************
#include <iostream.h>
class Point //类的定义
{
public: //外部接口
Point(int xx=0, int yy=0) {X=xx;Y=yy;} //带默认形参构造函数
int GetX() {return X;}
int GetY() {return Y;}
private: //私有数据
int X,Y;
};
void main() //主函数
{
Point A(4,5); //声明对象A
Point *p=&A; //声明对象指针并初始化
// int Point::*px=&Point::X; //Error 指针不能指向私有数据成员
int (Point::*p_GetX)()=Point::GetX; //声明成员函数指针并初始化
int (Point::*p_GetY)()=Point::GetY; //声明成员函数指针并初始化
cout<<A.GetX()<<","<<A.GetY()<<endl; //1.对象名访问成员函数
cout<<(A.*p_GetX)()<<","<<(A.*p_GetY)()<<endl; //1.对象名访问成员函数
cout<<(p->GetX)()<<","<<p->GetY()<<endl; //2.对象指针访问成员函数
cout<<((*p).GetX)()<<","<<(*p).GetY()<<endl; //2.对象指针访问成员函数
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?