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