在将派生对象添加到(抽象)基本指针数组时遇到了问题。为了简化我尝试做的事情,这里有一个例子:
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]。其他两个刚刚离开。
但我想我的主要问题是,如果上面的例子有效。如果是的话,要问可能发生的事情会不会太多。如果没有,是否有更好的方式?
编辑:谢谢大家!
答案 0 :(得分:3)
您的代码是正确的。给定动态分配的数组,Visual Studio调试器将仅显示第一个元素。 This回答可能有所帮助。
答案 1 :(得分:2)
是的,它运作得很好。调试器对你说谎 - 可能是因为baseArray
的静态类型是指向指针的指针,而不是指向3个元素数组的指针。