Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
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 !!!
Мне нужен НЕ СПИСОК УКАЗАТЕЛЕЙ НА ОБЪЕКТЫ, А СПИСОК ОБЪЕКТОВ !
(А зачем вообще тут нужна иерархия? – затем, что таких “списковых” классов, отличающихся ТОЛЬКО типом содержимого, у меня не один, а несколько. Хотя мне самому это – без разницы, но надо показать, дескать я умело использую наследование… Можно сделать “шаблон” – но не нужно, интересует именно наследование… )
Может, кто знает, как? Тогда, плиз, хелп! (а если в С++ так вообще нельзя - тогда я сильно обрадуюсь, значит дальше ничего делать не надо ) |
|
Вернуться к началу |
|
|
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 |
|
Вернуться к началу |
|
|
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 Заголовок сообщения: |
|
|
Да... |
|
Вернуться к началу |
|
|
|