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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 14.04.2011, 15:49   #1
mMAg
Форумчанин
 
Аватар для mMAg
 
Регистрация: 11.08.2009
Сообщений: 433
По умолчанию Operand must be l-value

Собственно, пишу дипломную, вот маленький кусочек из нее:

Код:
template<int len>
class ProxyKeys
{
public:

	
	void ** mas;

	ProxyKeys()
	{
		mas = new void*[len]
	};

	void* operator [](int ind)
	{
		return mas[ind];
	};
};
Затем этот шаблонный класс используется здесь:

Код:
class Rec
{
public:
	ProxyKeys<3> keys;
	int a;
	int b;
	double c;

	KProxy Key(int i); //метод обязателен для объявления и последующей реализации

	Rec()
	{
		keys[0] = &a;
		keys[1] = &b;
		keys[2] = &c;
	};
};
Ну и как результат 3 ошибки. keys.mas[0] = &a - здесь компилятор выдает: '=' left perand must be l-value.

Вопроса 2: Что это значит? И что необходимо изменить в классе ProxyKeys?
mMAg вне форума Ответить с цитированием
Старый 14.04.2011, 16:09   #2
mMAg
Форумчанин
 
Аватар для mMAg
 
Регистрация: 11.08.2009
Сообщений: 433
По умолчанию

Мда... тупею, неправильно перегрузил оператор, вот так нужно было:
Код:
void* & operator [](int ind)
	{
		return mas[ind];
	};
Простите за "левую" тему.
mMAg вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
ошибка - [Error] Unit1.pas(325): Operator not applicable to this operand type blackstersl Общие вопросы Delphi 6 27.08.2008 13:17