2013-04-29 42 views
0

那麼這個問題不是專門針對套接字,而是更多的C++問題。不過,我有一個可以通過套接字發送和接收數據的類。我想用流語法發送數據,所以我在我的課創建< <操作:在套接字上傳輸對象

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

現在在我的代碼,我可以用它和它的作品:

socket << "data"; 

的我現在面對的問題是,我只能把一個單一的元素,每行,而不是使用:

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

我知道,我將不得不超負荷的其它數據類型的運營商時,我想要流式處理它們,比如int,float等,但是我找不到爲什麼我不能鏈接變量。

+0

您是否正在函數中返回「this」BaseSocket實例? – TheDarkKnight 2013-04-29 13:05:38

回答

3

你應該刪除constconst BaseSocket&

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

常量是什麼阻止你鏈接,因爲運營商<<本身就是一個非const,所以它不能在一個const變量,它被稱爲從前面的操作員調用返回