将派生对象添加到(抽象)基指针数组中

时间:2015-04-11 06:54:42

标签: c++ visual-studio-2012

在将派生对象添加到(抽象)基本指针数组时遇到了问题。为了简化我尝试做的事情,这里有一个例子:

Base** baseArray = new Base*[3];
baseArray[0] = new derived1(param,param);
baseArray[1] = new derived2(param,param);
baseArray[2] = new derived3(param,param);

现在,我还没有让我的虚拟Print()工作打印出baseArray元素,但是使用vs2012调试器我只能在baseArray中看到baseArray [0]。其他两个刚刚离开。

但我想我的主要问题是,如果上面的例子有效。如果是的话,要问可能发生的事情会不会太多。如果没有,是否有更好的方式?

编辑:谢谢大家!

2 个答案:

答案 0 :(得分:3)

您的代码是正确的。给定动态分配的数组,Visual Studio调试器将仅显示第一个元素。 This回答可能有所帮助。

答案 1 :(得分:2)

是的,它运作得很好。调试器对你说谎 - 可能是因为baseArray的静态类型是指向指针的指针,而不是指向3个元素数组的指针。