【发布时间】:2011-02-02 01:18:39
【问题描述】:
我已经序列化了一个 C++ 对象,我希望为它分配空间,虽然我不能使用“new”运算符,因为我不知道对象的类。我尝试使用 malloc(sizeof(object)),虽然尝试将指针类型转换为序列化对象的类型,但程序关闭。对象类的信息存放在哪里?
class object
{
public:
virtual void somefunc();
int someint;
};
class objectchild:public object
{
}
object *o=(object*)malloc(sizeof(objectchild));
cout << int(dynamic_cast<objectchild*>(o)) << endl;
这会导致程序关闭。
提前谢谢你。
【问题讨论】:
-
为什么不在序列化中包含类型信息?
-
我不明白你的担心,你知道它的objectchild,但仍然不想使用new,这很奇怪。
-
我有一个在 char* 变量中序列化的对象,我通过 tcp/ip 协议发送它,但我需要知道另一端是什么对象,但我希望没有每次添加新类时都更改算法...我更愿意在没有任何其他库的情况下这样做。
标签: c++ class serialization object