C++来自派生类和基类的来回转换

Meg*_*ron 0 c++ casting

我想知道在C++中是否有办法完成以下任务:

我有一个被调用的基类ResultBase和两个派生自它的类,VariableExpression.我有一些方法可以解决vector<ResultBase>.我希望能够在载体传递VariableExpression进入这些方法.我可以通过创建一个vector<ResultBase>并使用static_cast它来填充我的Variable/Expression向量中的成员来实现这一点.但是,一旦向量运行了这些方法,我希望能够将它作为Result/Expression的向量返回.我肯定知道我要回哪一个.static_cast在这里不起作用,因为没有从a重构变量/表达式的方法ResultBase,更重要的是我没有变量/表达式的原始属性

这些方法修改了一些属性,ResultBase我需要将这些更改反映在原始向量中.(即ResultBase有一个名为的属性IsLive,其中一个方法将修改此属性.我希望此IsLive值反映在用于创建该属性的派生类中ResultBase

什么是最简单的方法来实现这一目标?

Eri*_*rik 5

vector<ResultBase *>应该修复你的切片问题 - 一个vector<ResultBase>永远不会包含派生自的类ResultBase,而是复制"切掉"例如Expression通过复制ResultBase它的一部分.

请参阅什么是对象切片?有关切片的详细说明.