![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| knut |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 588 Регистрация: 7.2.2006 Репутация: нет Всего: нет |
Народ не как не могу сделать список классов так чтоб в первоя звязь была обычной т.е не зависимо от типа элемента а вот обратная связь была такой элемент списка должен указывать только на на элемент своего типа.т.е A->B->A->A->B это первоя связь а вторая должна быть(тот же список)
А->А->А->B->B. Как рализовать такое? --------------------
|
|||
|
||||
| bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 63 Всего: 196 |
Если честно непонятно, на что может, а на что не может указывать обратная связь.
|
|||
|
||||
| zabivator |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 171 Регистрация: 7.6.2006 Где: нск Репутация: 1 Всего: 2 |
Так по-моему лучше. --------------------
#include <zabivator>int main( int, char * [] ){ while( Zabivator::жив() ) Zabivator::моск()++; return 0;} |
|||
|
||||
| knut |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 588 Регистрация: 7.2.2006 Репутация: нет Всего: нет |
bsa,
zabivator, и где у вас там организацыя списка? --------------------
|
|||
|
||||
| zabivator |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 171 Регистрация: 7.6.2006 Где: нск Репутация: 1 Всего: 2 |
knut, я тебе подал идею, как контролировать объекты в списке через фундаментальное понятие языка - типы.
Тебе нужна реализация списка? Так и напиши. --------------------
#include <zabivator>int main( int, char * [] ){ while( Zabivator::жив() ) Zabivator::моск()++; return 0;} |
|||
|
||||
| knut |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 588 Регистрация: 7.2.2006 Репутация: нет Всего: нет |
интересно где тут твой велосипед?
--------------------
|
|||
|
||||
| zabivator |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 171 Регистрация: 7.6.2006 Где: нск Репутация: 1 Всего: 2 |
knut, не понял, поясни. Если это провокация - зря время не теряй, не поведусь.
--------------------
#include <zabivator>int main( int, char * [] ){ while( Zabivator::жив() ) Zabivator::моск()++; return 0;} |
|||
|
||||
| knut |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 588 Регистрация: 7.2.2006 Репутация: нет Всего: нет |
да нет если что не так извини
Добавлено @ 22:02 я делаю так
--------------------
|
||||
|
|||||
| zabivator |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 171 Регистрация: 7.6.2006 Где: нск Репутация: 1 Всего: 2 |
knut, чорт, я не правильно первоначальную задачу понял. Но, имхо, RTTI тут - явно лишнее, пойду-ка я покурю над лучшей реализацией...
Добавлено @ 22:10 knut, единственное, что могу придумать в нормальной ( по количеству строчек кода) реализации - унаследоваться от std::list, перегрузить у него операторы ++ и --. Делать dynamic_cast внутри них. Чтобы эффективность была нормальная ( по скорости ), там уж нужно глубже копать - взять за основу ( за контейнер списка ) структуру данных мою или от bsa, а там уже лепить свой список, с собственной семантикой связей. --------------------
#include <zabivator>int main( int, char * [] ){ while( Zabivator::жив() ) Zabivator::моск()++; return 0;} |
|||
|
||||
| knut |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 588 Регистрация: 7.2.2006 Репутация: нет Всего: нет |
а чем мой вариант плоx?
--------------------
|
|||
|
||||
| zabivator |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 171 Регистрация: 7.6.2006 Где: нск Репутация: 1 Всего: 2 |
knut, тем, что он объявляет внешние функции для добавления и удаления элемента. Т.е. это не совсем список... А некоторые лесА, нагороженные вокруг стандартного списка.
--------------------
#include <zabivator>int main( int, char * [] ){ while( Zabivator::жив() ) Zabivator::моск()++; return 0;} |
|||
|
||||
| knut |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 588 Регистрация: 7.2.2006 Репутация: нет Всего: нет |
как не совсем список а тогда что это? --------------------
|
||||
|
|||||
| zabivator |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 171 Регистрация: 7.6.2006 Где: нск Репутация: 1 Всего: 2 |
knut, это не контйнер в плюсовом его смысле =) Больше похоже на структурно-функциональное программирование.
--------------------
#include <zabivator>int main( int, char * [] ){ while( Zabivator::жив() ) Zabivator::моск()++; return 0;} |
|||
|
||||
| knut |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 588 Регистрация: 7.2.2006 Репутация: нет Всего: нет |
у меня еще вопрос.как создать лист листов.т.есть списки list<base*>list_a,list<base*>list_b, list<base*>list_c ,надо создать лист list<base*>list_common из етиx листов.это вообще реално?
--------------------
|
|||
|
||||
| JackYF |
|
|||
![]() полуавантюрист ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 5814 Регистрация: 28.8.2004 Где: страна тысячи озё р Репутация: 18 Всего: 162 |
std::list< std::list< base* > > устроит?
|
|||
|
||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |