如果重新定义数据成员,则实现类

发布于 2024-11-01 23:51:56 字数 236 浏览 4 评论 0原文

如果我们重新定义数据成员,类的实现会发生什么? 例如,假设我们有:

class foo {
public:
    int a;
    char *b;
};
...
class bar : public foo {
public:
    float c;
    int b;
};

bar 对象的表示包含一个还是两个 b 字段?如果有两个,是都可以访问,还是只有一个?什么情况下?

What happens to the implementation of a class if we redefine a data member?
for example, suppose we have:

class foo {
public:
    int a;
    char *b;
};
...
class bar : public foo {
public:
    float c;
    int b;
};

Does the representation of a bar object contain one b field or two? If two, are they both accessible, or only one? Under what circumstances?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

节枝 2024-11-08 23:51:56

它包含两个,但其中之一称为 foo::b

int main() {
    bar x;
    x.b = 0;    // access bar::b
    x.foo::b = 0;   // access foo::b
}

It contains two, but one of them is called foo::b

int main() {
    bar x;
    x.b = 0;    // access bar::b
    x.foo::b = 0;   // access foo::b
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文