Logo Море(!) аналитической информации!
IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware
Архив форумов ЦИТФорума
Море(!) вопросов - Море(!) ответов
 
 FAQFAQ   ПоискПоиск   ПользователиПользователи   ГруппыГруппы   РегистрацияРегистрация 
 ПрофильПрофиль   Войти и проверить личные сообщенияВойти и проверить личные сообщения   ВходВход 
Как правильно задавать вопросы

Плз, хелп! Не могу сделать с наследованием в С++!

 
Перейти:  
Этот форум закрыт, вы не можете писать новые сообщения и редактировать старые.   Эта тема закрыта, вы не можете писать ответы и редактировать сообщения.    Список форумов Архив форумов ЦИТФорума -> Программирование
Предыдущая тема :: Следующая тема  
Автор Сообщение
Yello



Зарегистрирован: 09.03.2006
Сообщения: 107

СообщениеДобавлено: Вт Янв 02 2007 10:13    Заголовок сообщения: Плз, хелп! Не могу сделать с наследованием в С++! Ответить с цитатой

Допустим, у меня есть базовый класс «список»:
Код:

class slink {
friend class slist;
slink* next;
void* e;
};

Теперь я хочу его «конкретизироватть», чтобы вместо void* там стало что-то конкретное.
Если это делать с помощью НАСЛЕДОВАНИЯ, то вместо void* можно сделать УКАЗАТЕЛЬ НА ЛЮБОЙ ТИП, например:
Код:

class olink : slink {};

только затем во всех функциях olink надо будет при вызове явно преобразовывать void* к указателю на конкретный тип (см Страустроп, 7.3).

Но проблема НЕ В ЭТОМ, а в том, что мне ВМЕСТО void* e НУЖЕН НЕ name* e, А name e !!!
Мне нужен НЕ СПИСОК УКАЗАТЕЛЕЙ НА ОБЪЕКТЫ, А СПИСОК ОБЪЕКТОВ !
(А зачем вообще тут нужна иерархия? – затем, что таких “списковых” классов, отличающихся ТОЛЬКО типом содержимого, у меня не один, а несколько. Хотя мне самому это – без разницы, но надо показать, дескать я умело использую наследование… Можно сделать “шаблон” – но не нужно, интересует именно наследование… )
Может, кто знает, как? Тогда, плиз, хелп! (а если в С++ так вообще нельзя - тогда я сильно обрадуюсь, значит дальше ничего делать не надо Smile )
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Mytilus Galloprovincialis



Зарегистрирован: 30.08.2005
Сообщения: 358
Откуда: откуда все люди родятся

СообщениеДобавлено: Чт Янв 04 2007 15:39    Заголовок сообщения: Ответить с цитатой

А чем тебя не устраивает class olink : slink {name e;}; ?[/b]
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Kefir



Зарегистрирован: 16.04.2005
Сообщения: 443
Откуда: Пермь

СообщениеДобавлено: Сб Янв 06 2007 15:22    Заголовок сообщения: Ответить с цитатой

Шаблоны.
_________________
Самоловских Виталий aka Kefir
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
Yello



Зарегистрирован: 09.03.2006
Сообщения: 107

СообщениеДобавлено: Вт Янв 09 2007 18:54    Заголовок сообщения: Ответить с цитатой

Цитата:
чем тебя не устраивает class olink : slink {name e;};

Тем, что тогда для каждого наследника придётся:
1.Примитивы
2.Присваивание
3.Некоторые другие функции
писать ОТДЕЛЬНО ДЛЯ КАЖДОГО (наследника).
И это - несмотря на то, что они АБСОЛЮТНО ОДИНАКОВЫ, отличаются лишь ТИПОМ ОДНОГО ПОЛЯ.
А для чего тогда вообще наследование?
Просто, "чтоб было", не важно, что оно (почти) ничего не упростило? Всё-таки, если - так, тогда иерархия МНЕ кажется для данного случая просто "понтом", не более...
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Yello



Зарегистрирован: 09.03.2006
Сообщения: 107

СообщениеДобавлено: Вт Янв 09 2007 18:56    Заголовок сообщения: Ответить с цитатой

Цитата:
Шаблоны.

Да...
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Показать сообщения:   
Этот форум закрыт, вы не можете писать новые сообщения и редактировать старые.   Эта тема закрыта, вы не можете писать ответы и редактировать сообщения.    Список форумов Архив форумов ЦИТФорума -> Программирование Часовой пояс: GMT + 3
Страница 1 из 1

 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах


Powered by phpBB © 2001, 2002 phpBB Group
Русская поддержка phpBB

 

IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware

Информация для рекламодателей PR-акции, размещение рекламы — adv@citforum.ru,
тел. +7 495 6608306, ICQ 232284597
Пресс-релизы — pr@citforum.ru
Послать комментарий
Информация для авторов
This Web server launched on February 24, 1997
Copyright © 1997-2000 CIT, © 2001-2006 CIT Forum
Внимание! Любой из материалов, опубликованных на этом сервере, не может быть воспроизведен в какой бы то ни было форме и какими бы то ни было средствами без письменного разрешения владельцев авторских прав. Подробнее...