Дружба наследуется в C ++? - PullRequest
       221

Дружба наследуется в C ++?

14 голосов
/ 28 февраля 2009

Предположим, у меня есть Base класс:

class Base {
    friend SomeOtherClass;
};

И есть другой (другой) класс, который наследуется от Base:

class AnotherClass : public Base {}

Дружба тоже наследуется?

Ответы [ 3 ]

19 голосов
/ 28 февраля 2009

В принципе, производный класс наследует каждого члена базового класса, кроме:

* its constructor and its destructor
* its operator=() members
* its friends

Итак, нет. Друзья не наследуются.

9 голосов
/ 28 февраля 2009

Нет, это не так.

Редактировать: Цитировать из стандарта C ++, раздел 11.4 / 8

Дружба не наследуется и не наследуется транзитивно.

7 голосов
/ 28 февраля 2009

Нет, это не так, как описано здесь: http://www.parashift.com/c++-faq-lite/friends.html#faq-14.4

...