Изменение уровня унаследованного класса - PullRequest
2 голосов
/ 31 марта 2011

Можно ли изменять уровни доступа наследуемого класса так, как мы этого хотим?

class Base {

public:
   size_t x;

protected:
   size_t y;
};


class Derived : private Base {

protected:
   size_t x;

public:
   size_t y;
};

Наследует ли класс Base только закрытые члены или все члены Base будут private по умолчанию? Я пытался поменять уровни доступа, но я не понимаю, что я здесь делаю?

Ответы [ 2 ]

3 голосов
/ 31 марта 2011

Нет, Derived не может внезапно решить, что собирается украсть способность читать элемент, который private в Base.

На самом деле вы создаете различных переменных в Derived, которые имеют одно и то же имя.

2 голосов
/ 31 марта 2011

Что происходит, когда вы наследуете от Base с модификатором private, так это то, что только класс Derived имеет доступ к Base членам.Если вы решите создать AnotherDerived, который наследуется от Derived, вы не сможете получить доступ ни к одному из Base членов.

Проверьте эту ссылку для получения дополнительной информации.информация о спецификаторах наследования и доступа.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...