Предположим, у меня есть класс 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