Предположим, у меня есть класс Base:
class Base {
friend SomeOtherClass;
};
И есть еще один (другой) класс, который наследуется от Base:
class AnotherClass : public Base {}
Дружба тоже передается по наследству?
Предположим, у меня есть класс Base:
class Base {
friend SomeOtherClass;
};
И есть еще один (другой) класс, который наследуется от Base:
class AnotherClass : public Base {}
Дружба тоже передается по наследству?
В принципе, производный класс наследует всех членов базового класса, кроме:
* its constructor and its destructor
* its operator=() members
* its friends
Итак, нет. Друзья не передаются по наследству.
Нет, это не так.
Изменить: Цитата из стандарта C++, раздел 11.4/8.
Дружба не является ни наследуемой, ни переходной.
Нет, как описано здесь: http://www.parashift.com/c++-faq-lite/friends.html#faq-14.4
SomeOtherClass будет иметь доступ к Base полям и методам, унаследованным от объектов AnotherClass.
- person Hosam Aly; 28.02.2009