我已經序列化了一個C++對象,我希望爲它分配空間,儘管我不能使用「new」運算符,因爲我不知道對象的類。我嘗試使用malloc(sizeof(object)),儘管試圖將指針指向序列化對象的類型,程序關閉。關於對象類的信息存儲在哪裏?我序列化了一個C++對象,如何爲它分配內存而不知道它是什麼類型?
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;
這會導致程序關閉。
預先感謝您。
爲什麼不在序列化中包含類型信息? – kennytm 2010-03-29 13:42:34
我不明白你的關心,你知道它的objectchild,但仍然不想使用新的,多數民衆贊成在奇怪。 – the100rabh 2010-03-29 13:53:27
我有一個在char *變量中序列化的對象,我通過tcp/ip協議發送它,但我需要知道另一端是什麼對象,但是我希望通用地做到這一點,而不必每次添加算法都改變算法一個新班級......我寧願不做任何額外的圖書館。 – 2010-03-29 15:33:16