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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: перегрузка оператора []  (Прочитано 4143 раз)
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
т.е. [] возвращает сам себя чтоли.
Записан
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #1 : Май 08, 2011, 17:56 »

Похоже что listQuestion объявлен как указатель. Тогда надо записать

Код
C++ (Qt)
CQuestion q = (*listQuestion)[0];
 
Записан
NortT
Гость
« Ответ #2 : Май 08, 2011, 17:59 »

Спасибо Улыбающийся
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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