Модераторы: bsa
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как наследовать только часть класса? 
V
    Опции темы
Ice08
Дата 3.8.2008, 12:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 52
Регистрация: 7.5.2008
Где: Украина

Репутация: нет
Всего: нет



Вычитал в Дейтеле что можно наследовать только нужные элементы класса, а не весь класс, можете кинуть пример.
PM WWW   Вверх
Necias
Дата 3.8.2008, 13:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 45
Регистрация: 7.4.2006

Репутация: нет
Всего: 2



Ты про это
Код

class foo1{
private: //доступа к этим функциям в наследнике не будет
    void fun1(){}
    int a1;
public: //а к этим - будет
    void fun2(){}
    int a2;
};

class foo2: public foo1{
    public foo2(){
        fun1();  //ошибка, fun1 не унаследован
        fun2();  //нормально, унаследовано
    }
};

PM MAIL ICQ   Вверх
Daevaorn
Дата 3.8.2008, 13:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2155
Регистрация: 29.11.2004
Где: Москва

Репутация: нет
Всего: 70



Цитата(Necias @  3.8.2008,  14:34 Найти цитируемый пост)
 fun1();  //ошибка, fun1 не унаследован

Глупость. Наследование всегда полное. Если нет доступа к каким-то членам - это не значит что их нет.

Поскольку наследование реализует концепцию `is a`, то "частичное наследование" не наследование вовсе.
PM MAIL WWW   Вверх
Ice08
Дата 3.8.2008, 13:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 52
Регистрация: 7.5.2008
Где: Украина

Репутация: нет
Всего: нет



класс foo2 наследует только fun2();,
а  int a2; в этом производном классе нет? 
Цитата

Цитата(Necias @  3.8.2008,  14:34 )
 
Цитата

fun1();  //ошибка, fun1 не унаследован



Глупость. Наследование всегда полное. Если нет доступа к каким-то членам - это не значит что их нет.

согласен

Это сообщение отредактировал(а) Ice08 - 3.8.2008, 13:47
PM WWW   Вверх
Necias
Дата 3.8.2008, 14:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 45
Регистрация: 7.4.2006

Репутация: нет
Всего: 2



Цитата(Daevaorn @  3.8.2008,  13:38 Найти цитируемый пост)
Глупость. Наследование всегда полное. Если нет доступа к каким-то членам - это не значит что их нет.

Поскольку наследование реализует концепцию `is a`, то "частичное наследование" не наследование вовсе. 

Ответил на вопрос в меру понимания возможностей языка smile . Хотя, признаю, строчку "fun1 не унаследован" написал с горяча. Действительно, просто нет доступа.
Ice08, а можно ссылку на источник?
PM MAIL ICQ   Вверх
Ice08
Дата 3.8.2008, 22:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 52
Регистрация: 7.5.2008
Где: Украина

Репутация: нет
Всего: нет



В книге Дейтела глава вроде 9.
PM WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0731 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.