Russian Qt Forum
Ноябрь 28, 2024, 20:47 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Приватное наследование: что я не понимаю?  (Прочитано 4544 раз)
billygates
Гость
« : Март 10, 2010, 14:34 »

Господа, расскажите, пожалуйста, на пальцах почему данный код не компилируется при использовании приватного наследования? Спасибо.

Код
C
class Base
{
public:
   Base(int sz) { }
   virtual ~Base() { }
};
 
class Derived: private Base
{
public:
   Derived(int sz) : Base(sz) { }
   ~Derived() { }
};
 
 
int main(void)
{
   Base* b = new Base(100);
   Base* d = new Derived(200);
 
   delete b;
   delete d;
}
 

Почему ‘Base’ is an inaccessible base of ‘Derived’ ?
Записан
Tonal
Гость
« Ответ #1 : Март 10, 2010, 14:40 »

Потому что о приват-наследовании знает только непосредственный потомок и больше никто. Улыбающийся
Записан
Akaiten
Гость
« Ответ #2 : Март 10, 2010, 15:16 »

Потому что о приват-наследовании знает только непосредственный потомок и больше никто. Улыбающийся

Кстати да, это вытекает из того, что через преобразование в базовый класс можно было бы получить доступ к его public членам, что противоречит концепции приватного наследования.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.059 секунд. Запросов: 21.