Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Как перегрузить оператор сравнения?
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > Cредства разработки для МК > IAR
sonycman
Имеется ситуация:

Код
class CTimer {...}

CTimer tmrWait;

    if (tmrWait) {...}


Как сделать, чтобы для проверки условия в скобках вызывалась моя процедура?
Какой орератор для этого надо перегрузить?

Пока перегрузил оператор ! , получилось вот так:
Код
if (!tmrWait) {...}


Но хочется вообще без воскл. знака...
Сергей Борщ
Цитата(sonycman @ Apr 28 2008, 11:01) *
Какой орератор для этого надо перегрузить?
думаю, что operator int(). Дальше результат этого оператора по правилам приведения типов будет преобразован к bool. Если с operator int() не пройдет, то operator bool().
sonycman
Цитата(Сергей Борщ @ Apr 28 2008, 13:17) *
думаю, что operator int(). Дальше результат этого оператора по правилам приведения типов будет преобразован к bool. Если с operator int() не пройдет, то operator bool().

Спасибо, int не пробовал, попробовал сразу bool - работает прекрасно!
Блин, прикольно с классами работать получается! Только вчера начал с ними разбираться lol.gif
С++ - это вещь! yeah.gif
WHALE
А почему не
class CTimer {
.....
bool operator==(int n)
{
return(....==0)?true:false;
}
//или bool operator<(int n);- смотря что вам надо
};
CTimer tmrWait;

if(tmrWait==...){...};

Как-то так...
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.