⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 demo_object_pointer_2.cpp

📁 对于一个初涉VC++的人来书
💻 CPP
字号:

//***************************************************
//指向类的成员的指针
//指向数据成员的指针: <类型说明符><类名>::*<指针名>=&<类名>::<公有数据成员名>;
//指向函数成员的指针: <类型说明符>(<类名>::*<指针名>)(<参数表>)=<类名>::<公有函数成员名>;
//***************************************************

#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 + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -