在套接字上流式传输对象

时间:2013-04-29 13:03:20

标签: c++ outputstream

这个问题不是关于套接字的,而是更多的C ++问题。但是,我有一个可以通过套接字发送和接收数据的类。我想用流语法发送数据,所以我创建了<<我班上的操作员:

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

现在在我的代码中我可以使用它并且它可以工作:

socket << "data";

我现在面临的问题是我每行只能放一个元素而不能使用:

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

我知道当我想要流式传输其他数据类型时,我必须重载运算符,比如int,float等,但我找不到为什么我不能链接变量。< / p>

1 个答案:

答案 0 :(得分:3)

您应该从const

中删除const BaseSocket&
BaseSocket& operator << (const std::string &oMessage);
const是阻止你链接的东西,因为运算符<<本身是非const的,所以它不能在从前一个操作符调用返回的const变量上调用