main.cpp

来自「很好的 关于C++的例子 我想你要是可以把上面的例子都做好了 看明白了 关于函数」· C++ 代码 · 共 57 行

CPP
57
字号
#include "stdio.h"

class CPoint
{
public:
	 double x;
	 double y;
};

class CPoint3d : public CPoint
{
public:
	double z;
};

void Print(CPoint* point, double CPoint::* p)
{
	printf("%f\n", point->*p);
}

int main(int argc, char* argv[])
{
	 CPoint pt;
	 pt.x = 10;
	 pt.y = 20;

	 double CPoint::* p = NULL;

	 p = &CPoint::x;			//p指向x
	 double x = pt.*p;
	 Print(&pt, p);

	 p = &CPoint::y;			//p指向y
	 double y = pt.*p;
	 Print(&pt, p);

	 int offset = (int&)p;

	 double CPoint3d::* p3d = NULL;
	 p3d = &CPoint3d::z;					//p3d指向z

	 offset = (int&)p3d;

//	 p3d = p; //正确
	 //p = p3d; //错误
	 p = (double CPoint::*)p3d; //强制转换			p指向z

	 CPoint3d pt3d;
	 pt3d.x = 10;
	 pt3d.y = pt.y;
	 pt3d.z = 30;
	 Print(&pt3d, (double CPoint::*)p3d);

	 Print(&pt, (double CPoint::*)p3d);
	 return 0;
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?