首先,我一直在尋找我的特定問題,但我還沒有找到任何答案。 所以,我想要做的就是重載<<
操作,這樣我可以這樣做:在腦海重載<<運算符來存儲數據
myObj = new MyObj();
unsigned int v = 2;
myObj << v;
飼養,這將使的是,使用這個類:
class MyObj{
private:
char *data;
int count;
public:
MyObj(){ data = new char[64]; count = 0; }
//This "is" the overloaded << method
template <typename T>
T& operator<<(T val){
*(T*)(data + count) = val;
count += sizeof(T);
}
}
效果應該可以與此相同(suppossing 數據是一個公共屬性):
myObj << v;
應該是相同
*(unsigned int*)(myObj.data + myObj.count) = v;
myObj.count += sizeof(v);
有關如何做到這一點的任何想法?我只找到超載I/O或位操作符的方法,但是像這樣。
謝謝!
好吧,對不起。標題應該是「<<" not ">>」。我也想重載>>,但這不是我打算髮布的內容。 – Guillem 2012-04-08 22:15:30
您應該可以使用標籤下方的鏈接編輯您的問題。無論如何,我不是C++的人,但不是'operator <<',而不是'overload <<'? – Ryan 2012-04-08 22:16:53
它被稱爲運算符<<(T val) – unsym 2012-04-08 22:16:57