Хорошо, я не могу получить этот код работы: Я хочу объединить мои пользовательские манипуляторы. , поэтому они будут называться как cout << endl
. , например, я хочу это:Перегрузка операторов и манипуляторов письма?
emit << event1 << event2 << event3;
вот мой код:
class Emit
{
public:
// ...
const void operator<<(const Event& _event) const;
}const emit; // note this global
inline const void Emit::operator<<(const Event& _event) const
{
Start(_event);
}
class Event
{
// ...
const Event& Event::operator<<(const Event& _event) const;
};
inline const Event& Event::operator<<(const Event& _event) const
{
return _event;
}
Однако я не могу назвать это:
emit << event1 << event2 << event3;
Я Eather получения компиляции ошибки времени, время ссылки ошибки и то, что когда-либо я меняю в своем коде, я получаю несоответствующую ошибку, но не успех.
, например, вот этот:
Ошибка 1 ошибка C2679: бинарный '< <': ни один оператор не найден, который принимает правый операнд типа 'Const EventHandling :: Event' (или есть не приемлемо преобразование) C: \ Users \ Admin \ документы не \ Visual Studio 2010 \ проекты \ cppsystem \ eventhandling \ test.h 18
Большое спасибо.
ahahah: D Я получаю это сейчас, благодаря большому Xeo, вы просто сохранили жизнь моей клавиатуры! ваш код работает как шарм. – codekiddy