0

好吧,这个问题不是专门关于套接字的,而是一个 C++ 问题。但是,我有一个可以通过套接字发送和接收数据的类。我想用流语法发送数据,所以我在我的类中创建了 << 运算符:

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

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

socket << "data";

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

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

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

4

1 回答 1

3

你应该constconst BaseSocket&

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

const 是阻止您链接的原因,因为运算符<<本身是非常量的,因此不能在从前一个运算符调用返回的 const 变量上调用它

于 2013-04-29T13:05:19.817 回答