Ste*_*eve 3 c++ serialization constructor copy
我希望能够从基类初始化派生类,如下所示:
class X {
public:
X() : m(3) {}
int m;
};
class Y : public X {
public:
Y() {}
Y(const & X a) : X(a) {}
};
Run Code Online (Sandbox Code Playgroud)
这样做有什么危险或不寻常的吗?我想要它,因为我正在反序列化一些我不会立即知道的类型的对象,所以我基本上想要使用X作为一些临时存储,而我正在读取整个序列化文件,然后创建我的Y对象(和W,X,Y objs,取决于数据)之后使用该数据.也许有一种我更容易丢失的方式.
谢谢!
只要X具有正确的复制ctor(自动生成或不自动生成)并且将Y(如果有的话)的其他成员设置为适当的默认值,则应该没有问题.
我假设Y有一些setter方法可以Y使用序列化流中的后续信息的结果进行更新?
另请注意,您Y的X构造函数应该具有看起来更像的签名:
Y( X const & a) // the X was in an invalid place before
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2312 次 |
| 最近记录: |