我该怎么做?我想到了复杂类中的一种方法,它将基本对象的每个变量都复制到复杂对象上,但这似乎有点不方便。将基础类的对象扩展为复杂类的对象
class Basic
{
//basic stuff
}
class Complex : public Basic
{
//more stuff
}
Basic * basicObject = new Basic();
//now "extending" basicObject and "cast" it to Complex type
//which means copy everything in basicObject to an complexObject
或类似的东西:
Complex * complexObject = new Complex();
complexObject.getEverythingFrom(basicObject);
似乎是太不方便了,因为每次我改变基本类,我必须得改变这种“复制”的方法。
我不认为你问的东西有很大的意义。也许更好地陈述你的目标,而不是你决定成为第一步。 –
你应该多读一点继承以及它是如何工作的。 –
你不能这样做。当你创建一个'Basic'对象时,你不能强制转换为派生的'Complex'。此外,每个派生类都将自己的基类变量作为自己的变量。为什么你需要执行这个副本,如果你可以直接访问所有的基础变量? –