c++ - 重定义数据成员时类的实现

标签 c++ class implementation redefinition

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

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

条形对象的表示是否包含一个或两个 b 字段?如果有两个,它们是都可以访问,还是只有一个?在什么情况下?

最佳答案

它包含两个,但其中一个叫做 foo::b

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

关于c++ - 重定义数据成员时类的实现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5699044/

相关文章:

java - 尚未共享的 SSL 和 Open SSL、Java 和 C++,共同点?

java - 如何在不修改子类的情况下添加对现有子类中方法调用的控制?

java - 如何将 GPS 坐标发送到另一个类

unicode - "Unicode Line Breaking Algorithm"(UAX#14) 的实现

python - 我的 Dijkstra 算法出了什么问题

c++ - 当我尝试对数组的内容使用函数时,控制台中没有任何显示

c++ - 使 Xerces 解析字符串而不是文件

c++ - 是否有显式拷贝

javascript - 如何从其构造函数中定义的 HTML 调用类方法?

c - 误报概率图和 ROC 曲线