Реализация класса, если член данных переопределен - PullRequest
3 голосов
/ 18 апреля 2011

Что произойдет с реализацией класса, если мы переопределим элемент данных? например, предположим, что мы имеем:

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

Содержит ли представление объекта бара одно поле b или два? Если два, они оба доступны, или только один? При каких обстоятельствах?

1 Ответ

5 голосов
/ 18 апреля 2011

Содержит два, но один из них называется foo :: b

int main() {
    bar x;
    x.b = 0;    // access bar::b
    x.foo::b = 0;   // access foo::b
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...