Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 12.03.2010, 14:58   #1
ongleb
Пользователь
 
Регистрация: 30.07.2009
Сообщений: 10
По умолчанию TList->Sort

Недавно понадобилось мне попользоваться списком TList
раньше как то не приходилось
заполнил список похоже правильно
вывел весь список в файл, ну чтобы проверить
все на месте

теперь его надо отсортировать методом sort (разумеется реч о TList'e а не о файлике)
и вот с ним то, с методом sort, возникли проблемы

Красным выделил места ошибок
но не могу понять как правильно сделать

ForSort->Sort(Compare);
упорно не хочет работать
остальные что то не очень интересуют
как ни будь сам разберусь

подскажите плиз

C++Builder 6

unit1.h
Код:
public:		// User declarations

        struct aPoint
        {
                unsigned long Nfrag;
                unsigned long Npoint;
        };
        TList *Ridges;
...
...
...
        void Optimizer (int mode) ;  
        int Compare(void* Item1, void* Item2);
unit1.cpp
Код:
//---------------------------------------------------------------------------
void TMyProg::MyFunc(int mode )
{
        TList *ForSort;

	ForSort=Ridges

        ForSort->Sort(Compare);


}
//---------------------------------------------------------------------------
int  __fastcall TMyProg::Compare(void* Item1, void* Item2)
{
        if (Item1->Npoint < Item2->Npoint) return -1;
        if (Item1->Npoint > Item2->Npoint) return 1;
        else return 0;
}
//---------------------------------------------------------------------------
сообщения об ошибках
Код:
[C++ Error] Unit1.cpp(521): E2034 Cannot convert 'int (* (_closure )(void *,void *))(void *,void *)' to 'int (_fastcall *)(void *,void *)'
[C++ Error] Unit1.cpp(521): E2342 Type mismatch in parameter 'Compare' (wanted 'int (_fastcall *)(void *,void *)', got 'void')
[C++ Error] Unit1.cpp(527): E2356 Type mismatch in redeclaration of 'TMyProg::Compare(void *,void *)'
[C++ Error] Unit1.h(136): E2344 Earlier declaration of 'TMyProg::Compare(void *,void *)'
[C++ Error] Unit1.cpp(528): E2288 Pointer to structure required on left side of -> or ->*
[C++ Error] Unit1.cpp(528): E2288 Pointer to structure required on left side of -> or ->*
[C++ Error] Unit1.cpp(529): E2288 Pointer to structure required on left side of -> or ->*
[C++ Error] Unit1.cpp(529): E2288 Pointer to structure required on left side of -> or ->*

Последний раз редактировалось ongleb; 12.03.2010 в 17:54.
ongleb вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вопрос насчет функции sort TOLIK111 Общие вопросы C/C++ 1 06.12.2009 15:57
трассировка алгоритма Quick Sort bfm89 Помощь студентам 6 27.11.2009 14:38
C++: Портотип функции sort Crazy_caramel Помощь студентам 4 26.11.2009 23:17
Подкорректирова tList Altera Общие вопросы Delphi 2 11.09.2009 20:24
(STL LIST SORT) Сортировка по некольким критериям htatsu Общие вопросы C/C++ 4 19.07.2009 01:44