我有类场景(来自 assimp 库),我用一些功能扩展了它并制作了类 sceneChild。现在我需要将数据从场景实例复制到 sceneChild 实例中。我知道可以手动编写如下内容: sceneChild.a=scene.a , sceneChild.b=scene.b ... 或 this.a=scene.a , this.b=scene.b 在复制构造函数中。然而,有些事情告诉我这可以用几行代码来完成。我对吗?如果是这样,那么如何做到这一点?谢谢!
我问这个问题是因为我不仅需要对场景类执行此复制操作,而且还需要对许多其他充满数据的类执行此复制操作,因此手动执行此操作将花费太长时间。
例子:
class Parent
{
public:
string name;
};
class Child: Parent
{
public:
int age;
};
int main()
{
Parent p;
p.name = "some name";
Child c(p); // some magic here so that data (in this case string "name")
//is copied from p to c so that c.name=="some name"
return 0;
}
最佳答案
我不熟悉场景类,但通常你可以使用 initialization list在构造函数中初始化父类。
在您的示例中,您可以使用:
class Parent
{
public:
string name;
};
class Child: public Parent
{
public:
int age;
Child(Parent& p) : Parent(p) {}
};
关于c++ - 将数据从父类实例复制到子类的有效方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38390279/