C++ 返回指向成员的指针

问题描述 投票:0回答:3

SO是一场狗屎秀。感谢您的搭车。

c++
3个回答
7
投票

你不需要括号:

int Point::* getX () {
   return &Point::x;
}

想象一下使用括号和常规指针:

int (*) getX() // compiler says WTF
{
   static int x; 
   return &x;
}

5
投票

删除多余的括号并将类型更改为

int

int Point::* getX () {
   return &Point::x;
}

演示,因为 coliru 目前已关闭


3
投票

声明语法(大约)遵循使用语法。

要使用

getX
,您可以写
p.*getX()
(其中
p
Point
),这将产生
int
。所以声明是:

int Point::*getX()
© www.soinside.com 2019 - 2024. All rights reserved.