Потоковые объекты на сокете

Ну, этот вопрос не только о сокетах, но больше о C ++. Тем не менее, у меня есть класс, который может отправлять и получать данные через сокет. Я хотел бы отправить данные с синтаксисом потока, поэтому я создаю << оператор в моем классе:

virtual const BaseSocket& operator << (const std::string &oMessage);

Теперь в моем коде, и я могу использовать его, и он работает:

socket << "data";

Проблема, с которой я сталкиваюсь сейчас, заключается в том, что я могу поместить только один элемент в строку и не использовать:

socket << "data1" << "data2";

Я знаю, что мне пришлось бы перегружать оператор для других типов данных, когда я хочу также передавать их, например, int, float и т. Д., Но я не мог понять, почему я не могу связать переменные.

0

Решение

Вы должны удалить const от const BaseSocket&

BaseSocket& operator << (const std::string &oMessage);

const — это то, что мешает вам цепляться, потому что оператор << сам по себе является неконстантным, поэтому он не может быть вызван для константной переменной, которая возвращается из предыдущего вызова оператора

3

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]