我希望能够从基类初始化派生类,如下所示:
:
class X {
public:
X() : m(3) {}
int m;
};
class Y : public X {
public:
Y() {}
Y(const & X a) : X(a) {}
};
这样做有什么危险或不寻常的地方吗?我需要这样做是因为我正在反序列化一堆类型未知的对象,所以我基本上想在读取整个序列化文件时使用X作为一些临时存储,然后稍后使用那些数据创建我的Y对象(和W、X、Y对象,具体取决于数据)。也许我错过了更简单的方法。
谢谢!
X
的复制构造函数中,Y
的成员不需要被初始化。 - Steve Guidi