Russian Qt Forum
Ноябрь 22, 2024, 12:00 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Перегрузка оператора && в QtScript.  (Прочитано 4881 раз)
Yegor
Гость
« : Июль 22, 2013, 16:20 »

Здравствуйте!

В QtScript делаю операцию над двумя объектами:
Код:
MyObj1 && MyObj2;
Чтобы этот оперетор (&&) работал - нужно перегрузить его.

Для этого скрипта прикрепляю объект pMyAlarmObj:

Код:
//Bind this class to script engine.
QScriptValue my_alarm_obj_val = m_pScriptEngine->newQObject(pMyAlarmObj);
m_pScriptEngine->globalObject().setProperty("AlarmScript", my_alarm_obj_val);

Далее для обработки оператора && создаю public слот в pMyAlarmObj:

Код:
//Override of operator +. Using to make '&&' between 'SensorAlarm'.
bool AlarmScript::operator&&(const SensorAlarm & left, const SensorAlarm & right)
{
    return TRUE;
}

Компилятор выводит ошибку:
error: 'bool AlarmScript::operator&&(const SensorAlarm&, const SensorAlarm&)' must take exactly one argument

То есть компилятор думает, что я хочу переопределить оператор && для класса 'AlarmScript' а не для скрипта. И требует, чтобы в параметрах был только один аргумент. А мне же нужно перехватить && и обработать объекты так, чтобы аргументы были const и не были изменены.

Подскажите, пожалуйста, как все же переопределить &&.
Записан
lit-uriy
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3880


Просмотр профиля WWW
« Ответ #1 : Июль 22, 2013, 17:55 »

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

Юра.
Yegor
Гость
« Ответ #2 : Июль 22, 2013, 19:08 »

С этим понятно.
А как же все таки перегрузить оператор в скрипте?
Записан
Old
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4350



Просмотр профиля
« Ответ #3 : Июль 22, 2013, 19:17 »

А как же все таки перегрузить оператор в скрипте?
А разве это возможно.  Строит глазки
Записан
ритт
Гость
« Ответ #4 : Июль 22, 2013, 21:30 »

а кастнуть к булке?
Записан
Yegor
Гость
« Ответ #5 : Июль 23, 2013, 12:34 »

Цитировать
а кастнуть к булке?
А это как?
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.046 секунд. Запросов: 23.