Russian Qt Forum
Сентябрь 22, 2024, 09:31 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: [Решено] Использовать свой класс в QMap  (Прочитано 2235 раз)
Yegor
Гость
« : Сентябрь 12, 2012, 18:09 »

Здравствуйте!

Создаю свой класс:

Код:
class cont_reg_model_dt_struct
{
public:
    cont_reg_model_dt_struct(){} //Override of constructor.
    cont_reg_model_dt_struct(const cont_reg_model_dt_struct & other); //Override of copy constructor.
    cont_reg_model_dt_struct &operator=(const cont_reg_model_dt_struct &other); //Override of assignment.
    bool operator<(cont_reg_model_dt_struct other){return TRUE;}  //Override of operator '<'.
};

Затем вставляю его в QMap:

Код:
QMap<int,cont_reg_model_dt_struct> m_MeasLinkageMap2;

Послe чего работаю с QMap:

Код:
QList<cont_reg_model_dt_struct> listVals = m_MeasLinkageMap2.values();
qSort(listVals.begin(), listVals.end());

И при компиляции последней строки (qSort(listVals.begin(), listVals.end())) выводятся ошибки:
c:\Qt\4.8.2\include\QtCore\..\..\src\corelib\tools\qalgorithms.h:161: ошибка: passing 'const ContiniousRegimeModel::cont_reg_model_dt_struct' as 'this' argument of 'bool ContiniousRegimeModel::cont_reg_model_dt_struct::operator<(ContiniousRegimeModel::cont_reg_model_dt_struct)' discards qualifiers

Хотя я метод bool operator<(cont_reg_model_dt_struct other) переопределял.

Подскажите, пожалуйста, в чем проблема.
« Последнее редактирование: Сентябрь 12, 2012, 18:39 от Yegor » Записан
GreatSnake
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2921



Просмотр профиля
« Ответ #1 : Сентябрь 12, 2012, 18:29 »

Хотя я метод bool operator<(cont_reg_model_dt_struct other) переопределял.
Переопределяй так:
Код
C++ (Qt)
bool operator<( const cont_reg_model_dt_struct& other ) const;
Записан

Qt 5.11/4.8.7 (X11/Win)
Yegor
Гость
« Ответ #2 : Сентябрь 12, 2012, 18:38 »

А теперь все нормально. Спасибо!
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.072 секунд. Запросов: 23.