gpt4 book ai didi

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

转载 作者:塔克拉玛干 更新时间:2023-11-03 08:09:28 27 4
gpt4 key购买 nike

“指向成员的指针”返回类型的语法是什么?

struct Point {
int x;
int y;
int z;
};

// compiles
decltype(&Point::x) getX () {
return &Point::x;
}

// does not compile... how to do this without decltype?
int (Point::*) getX () {
return &Point::x;
}


// Use case:
Point p, q;
auto pm = getX();
p.*pm = 1; // p.x = 1
q.*pm = 2; // q.x = 2

最佳答案

你不需要括号:

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

想象一下将括号与常规指针一起使用:

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

关于C++返回指向成员的指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24917238/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com