оператор в c



Автор Stanislav fedosov задал вопрос в разделе Другие языки и технологии

Помогите с переопределением операторов в C++ и получил лучший ответ

Ответ от ?????? Зелёный змий ??????[гуру]
class MyClass
{
public:
bool operator <(const MyClass &a) const
{
(если *this меньше a) return true;
// что *this меньше a определяешь сравнивая переменные-члены класса
return false;
}
bool operator>(const MyClass &a) const
{
(если *this больше a) return true;
return false;
}
};
или написать оператор не функцию-член класса
bool operator>(const MyClass &a, const MyClass &b)
{
return ( a больше b );
// что a больше b определяешь сравнивая начинку объектов a и b
}

Ответ от Kael[новичек]
"... пишет что слишком много параметров для данной функции" - если перегружаемый оператор является членом класса, ему может быть передан только 1 параметр (объект стоящий справа от оператора) , а объект стоящий слева (то есть объект который вызывает перегруженный оператор) передается неявно.

Ответ от Дмитрий Куценко[гуру]
Вообще тут подразумевается сравнение - т. е. результат должен быть bool

Ответ от (((d(O_O)b))[гуру]
wtf?
Что это за *****ая ***та? о_О
bool operator > (const Time& a, const Time& b) { //переопределение операции ">"
return a.значение>b.значение;
}
"<" аналогично. Вроде ничего не напутал... и хватит таких вопросов в 2 часа ночи, ок?
a.значение - этьо поле объекта класса, по которому производим сравнение
И "переопределение" называется перегрузкой по-человечески
Кстати да, я немного не прав. Ты можешь перегружать > и < как тебе в голову взбредет, но если ты хочешь что бы перегрузка именно сравнивала два объекта класса - юзай мой код

Ответ от Grokc68@mail.ru[активный]
Я забыл

Ответ от 3 ответа[гуру]
Привет! Вот подборка тем с похожими вопросами и ответами на Ваш вопрос: Помогите с переопределением операторов в C++
Операторы в C и C++ на Википедии
Посмотрите статью на википедии про Операторы в C и C++
 

Ответить на вопрос:

Имя*

E-mail:*

Текст ответа:*
Проверочный код(введите 22):*