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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: QList<MyClass>::indexOf  (Прочитано 2883 раз)
pashazz
Гость
« : Июль 09, 2009, 10:21 »

Всем привет.
Есть некий класс
Код
C++ (Qt)
class Club: public QObject {
   public:
   Club();
   Club (const Club&);
   Club& operator=(const Club&);
   bool operator==(Club);
   QString name;
   QString displayName;
   QList <Player> players;
   QList <Match> matches;
   QPair <int, int> goals;
   Player getPlayer(int number);
   Player getPlayer(QString name);
};
typedef QPair<Player, Player> Change;
struct MatchStatistics {
 
 Club club;
 int goals;
 QList <Player> golaedors;
 QList <Player> start;
 QList <Player> traumas;
 QList <Change> changes;
 QList <Player> yellowCards;
 QList <Player> redCards;
};
 
 
struct Match {
  MatchStatistics home;
  MatchStatistics away;
   QString matchfile;
};
//И есть QList
QList<Club> clubs =  trn->getClubs();
QStringList gamers = trn->getGamers();
 
m_ui->lblHome->setText(gamers.at(clubs.indexOf(m.home.club)) + "\n(" + m.home.club.name + ")");
m_ui->lblAway->setText(gamers.at(clubs.indexOf(m.away.club)) + "\n(" +m.away.club.name + ")");
 
проверял много раз debigging helper`ом - в gamers и clubs одинаковое кол-во элементов.
Но почему-то при вызове indexOf происходит out of range. Я так понимаю потому, что возвращается -1
Но m.away.club и m.home.club точно содержатся в clubs. Также проверено дебаггером
Записан
Rcus
Гость
« Ответ #1 : Июль 09, 2009, 10:29 »

Нужно смотреть на реализацию класса, а точнее конструктор копирования и оператор ==
Записан
ритт
Гость
« Ответ #2 : Июль 09, 2009, 10:32 »

Код:
-class Club: public QObject {
+class Club {
     public:
     Club();
     Club (const Club&);
     Club& operator=(const Club&);
-    bool operator==(Club);
+    bool operator==(const Club&) const;
а ещё лучше
Код:
-class Club: public QObject {
+struct Club {
-     public:
и похерить ненужные методы (POD)

а совсем хорошо будет, если откроешь для себя implicit sharing
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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