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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 21.05.2013, 12:49   #1
Cannibal
Форумчанин
 
Регистрация: 17.02.2008
Сообщений: 191
По умолчанию Перегрузка оператора [] C++

Пишу свой класс работы с матрицами. Матрица представляется в виде линейного массива. Мне нужно добиться того, чтобы работал такой код

Код:
  Matrix4D m;
  float a = m[2];
Сейчас выдает такую ошибку
IntelliSense: отсутствует оператор "[]", соответствующий этим операндам типы операндов: const matrix4D [ int ]

вот сам код класса
Код:
class matrix4D
{

	float data[16];
public:
	matrix4D()
	{
		for (int i = 0; i<16, ++i;) 
			if (i % 5)
		    	data[i]=1;
			else 
				data[i]=0;
	
	}

   // некоторый набор методов

	float& operator[] (const int i) ;//{return data[i];}
};

	float& matrix4D::operator[] (const int i) 
	{
		return data[i];
	}
Mathematicians often mix up Christmas and Halloween, because Dec.25=Oct.31.

Последний раз редактировалось Cannibal; 21.05.2013 в 13:01.
Cannibal вне форума Ответить с цитированием
Старый 21.05.2013, 13:02   #2
Abstraction
Старожил
 
Аватар для Abstraction
 
Регистрация: 25.10.2011
Сообщений: 3,178
По умолчанию

Код:
float& operator[] (const int i) ;
const в данном случае не имеет смысла. Если Вы этого не видите, подумайте ещё раз, что этот const запрещает.
Разумеется, matrix4D :: operator[](int) и matrix4D :: operator(const int) - это разные функции, и m[2] вызывает вторую (для которой компилятор находит объявление, но не находит тела).
Abstraction вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Перегрузка оператора^ Voronar Общие вопросы C/C++ 2 03.12.2012 23:26
Перегрузка оператора == Lapo4ka Общие вопросы C/C++ 4 15.12.2011 01:26
Перегрузка оператора + Jane-sad Помощь студентам 0 05.10.2010 13:52
перегрузка оператора -> alex_alpha Общие вопросы C/C++ 5 23.06.2010 19:07
Перегрузка оператора + z3rg Общие вопросы C/C++ 1 22.03.2009 03:06