Russian Qt Forum

Программирование => С/C++ => Тема начата: NortT от Май 08, 2011, 17:49



Название: перегрузка оператора []
Отправлено: NortT от Май 08, 2011, 17:49
Всем привет. Возникла проблема у меня при перегрузке оператора индексации (использую qt 4.7.2).
Имеется у меня вот такой класс:
Код
C++ (Qt)
class CListQuestion
{
public:
   CQuestion& operator[] (int n);
private: //members
   QVector<CQuestion> question;
};
 
CQuestion& CListQuestion::operator[] (int n)
{
   return question[n];
}
 
И вот оператор [] не работает, вернее работает, но как-то не так, как я ожидаю. По идее
Код
C++ (Qt)
CQuestion q = listQuestion[0];
должно вернуть ссылку на объект CQuestion. Но вот при сборке получаю сообщение
Цитировать
error: conversion from ‘CListQuestion’ to non-scalar type ‘CQuestion’ requested
т.е. [] возвращает сам себя чтоли.


Название: Re: перегрузка оператора []
Отправлено: Igors от Май 08, 2011, 17:56
Похоже что listQuestion объявлен как указатель. Тогда надо записать

Код
C++ (Qt)
CQuestion q = (*listQuestion)[0];
 


Название: Re: перегрузка оператора []
Отправлено: NortT от Май 08, 2011, 17:59
Спасибо :)