SO是一场狗屎秀。感谢您的搭车。
你不需要括号:
int Point::* getX () {
return &Point::x;
}
想象一下使用括号和常规指针:
int (*) getX() // compiler says WTF
{
static int x;
return &x;
}
声明语法(大约)遵循使用语法。
要使用
getX
,您可以写 p.*getX()
(其中 p
是 Point
),这将产生 int
。所以声明是:
int Point::*getX()