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

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

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 10.04.2012, 17:48   #1
LiuLiuJons
Форумчанин
 
Регистрация: 28.12.2011
Сообщений: 124
По умолчанию Перегружаемые операторы ( ==, != )

Здравствуйте!
Есть класс:
Код:
class Field
{
private:
	float color[3];
	struct coord
	{
	double X[4]; // координата х
	double Y[4]; // координата у
	double Z[4]; // координата z
	} dot;
public:
	Field();
	void SetPos(double a, double b);
	const coord& getPos() { return dot; };
}
Мне необходимо сравнивать у двух объектов класса совпадают ли координаты: (struct coord) - могу ли я написать оператор таким образом для этого:
Код:
int operator ==(const coord& a);
int Field::operator ==(const coord& a)
{   int pp =0;

	for (int i=0; i<4; i++)
	{
	  if (a.X[i] == dot.X[i] &&
	  a.Y[i] == dot.Y[i] &&
	  a.Z[i] == dot.Z[i]) pp++;
	}
	if (pp==4) return 1;
	else return 0;
}
Судя, по ошибкам компилятора - не могу.
А нужно мне что-то наподобие этого:
Код:
Field* t, m;
if (m.getPos()==t.getPos())
Подскажите как это можно реализовать (если можно)?
Спасибо!
"Думай не о задаче, а о решении" (с)
LiuLiuJons вне форума Ответить с цитированием
Старый 10.04.2012, 18:53   #2
Granus
С++
Форумчанин
 
Аватар для Granus
 
Регистрация: 22.09.2008
Сообщений: 791
По умолчанию

Ну, вам нужно сравнивать coord, для него и перегружайте
Код:
bool Field::coord::operator == (const coord& a) {...}
Форматируйте код, будьте людьми.
Granus вне форума Ответить с цитированием
Старый 11.04.2012, 12:09   #3
LiuLiuJons
Форумчанин
 
Регистрация: 28.12.2011
Сообщений: 124
По умолчанию

Цитата:
Сообщение от Granus Посмотреть сообщение
Ну, вам нужно сравнивать coord, для него и перегружайте
Код:
bool Field::coord::operator == (const coord& a) {...}
Угу, спасибо, так работает. Только ещё после объявления метода надо было указать const, иначе компилятор ругается.
"Думай не о задаче, а о решении" (с)
LiuLiuJons вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
операторы do...while С++ technomaster Помощь студентам 4 04.04.2012 12:21
Операторы ziganurov2011 Паскаль, Turbo Pascal, PascalABC.NET 5 24.07.2011 03:04
С++ (операторы) Мари_Ланвейн Помощь студентам 1 23.12.2010 20:35
Операторы ( с ++) violettta Фриланс 13 10.12.2010 14:01