Перезагрузка операторов

Модераторы: Hawk, Romeo, Absurd, DeeJayC, WinMain

Ответить
MiReQ
Сообщения: 28
Зарегистрирован: 13 май 2009, 13:06
Откуда: Россия, Пермь
Контактная информация:

как описать перезагрузку оператора + так, что бы данный код выводил следующее:
1+
+2

Код: Выделить всё

void main()
{
 TString s1="1";
 TString s2="2";

 s1=s1+'+';             // TString TString: :o perator + (char с);
 s2='+'+s2;             // ???

 printf("%s\n%s",s1.c_str(),s2.c_str());
}
Аватара пользователя
Romeo
Сообщения: 3126
Зарегистрирован: 02 мар 2004, 17:25
Откуда: Крым, Севастополь
Контактная информация:

Для строки кода s2='+'+s2 нужен внешний оператор:

Код: Выделить всё

TString operator + (char cLeft, const TString& strRight);
Entites should not be multiplied beyond necessity @ William Occam
---
Для выделения С++ кода используйте конструкцию [ code=cpp ] Код [ /code ] (без пробелов)
---
Сообщение "Спасибо" малоинформативно. Благодарность правильнее высказать, воспользовавшись кнопкой "Reputation" в виде звёздочки, расположенной в левом нижнем углу рамки сообщения.
MiReQ
Сообщения: 28
Зарегистрирован: 13 май 2009, 13:06
Откуда: Россия, Пермь
Контактная информация:

Работает, спасибо! :)
Ответить