我正在尝试在Obj
课堂上做这样的事情:
public:
template <typename T>
Obj(T & o) {
siz = sizeof(o);
p = malloc(siz);
memcpy(p, &o, siz);
}
private:
void * p;
size_t siz;
如果我这样做,那效果很好:
string str = "foobar";
Obj u = Obj(str);
但如果我做这样的事情就不会:
Obj u = Obj(string("foobar"));
这会产生一个填充随机字符的字符串。
要检索我使用的字符串:
string S() {
return *((string *)p);
}
任何的想法?