gpt4 book ai didi

c++ - 为什么范围解析不适用于重写变量?

转载 作者:行者123 更新时间:2023-11-28 00:44:34 24 4
gpt4 key购买 nike

当我查看以下代码示例时,我认为 d.B::numb.num 相同,但事实并非如此。它似乎是一个具有自己地址的不同变量。当我单击运行按钮时,我看到三个变量 b.numd.numd.B::num 中的每一个都有其关联值(分别为 3、4 和 5)。

为什么会这样?如果 d.B::numb.num 不同,这里究竟是什么?

struct B {int num;};

struct D : public B {int num;};

int main() {

B b;
D d;

b.num = 3;
d.num = 4;
d.B::num = 5;

cout << b.num << endl;
cout << d.num << endl;
cout << d.B::num << endl;

return 0;
}

最佳答案

看来你有:

B[int B::num]

D[int B::num, int D::num]

如果你调用 d.num 它默认为 D::num如果你调用 d.B::num 它默认为 B::num

关于c++ - 为什么范围解析不适用于重写变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16978616/

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