首先,我一直在四处寻找我的特定问题,但我还没有找到任何答案。所以,我想做的是重载<<
运算符,以便我可以这样做:
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);
}
}
效果应该和这个一样(假设data是公共属性):
myObj << v;
应该是一样的
*(unsigned int*)(myObj.data + myObj.count) = v;
myObj.count += sizeof(v);
关于如何做的任何想法?我只找到了重载 I/O 或位运算符的方法,但是像这样。
谢谢!