gpt4 book ai didi

c++ - 与运算符(operator)混淆

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:15:19 24 4
gpt4 key购买 nike

当我试图理解下面的代码时,我感到很困惑。任何人都可以解释这个黑客:

a.*b

或者如果 a 是一个指向类的指针:

a->*b

最佳答案

这两个运算符都用于取消引用指向成员的指针。与常规指针不同,指向成员的指针本身不能取消引用,但必须应用于该类型的实际对象。这些二元运算符选择左侧的对象(或指针)并将指向成员的指针应用于它。

struct test {
int a, b, c;
};
int main() {
int test::*ptr;
ptr = &test::a;
test t;
t.*ptr = 5; // set t.a to 5
ptr = &test::b;
test *p = &t;
p->*ptr = 10; // set t.b to 10 through a pointer
}

关于c++ - 与运算符(operator)混淆,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12098419/

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