在C ++中使用“双指针”动态数组

时间:2014-12-10 16:28:49

标签: c++ arrays double-pointer

好的,所以我完成了这项任务,我已经坚持下去,并且我会帮助你。

基本上我所拥有的是一个基类和两个派生自该基类的类,它们不是一个问题。但现在我需要制作一个"容器"具有"双指针"的类动态数组,包含两个类的实例。

我的问题是:为什么双指针数组会帮助我?这个双指针业务对我来说似乎很混乱。通过谷歌搜索,我发现双指针基本上是指向指针的指针,但是这对我有什么帮助?如何声明双指针动态数组?

另外,如何在同一个数组中存储两个不同的类(虽然派生自相同的基类),这两种不同的数据类型不是吗?

1 个答案:

答案 0 :(得分:2)

您需要一个指针使其成为可能属于任何派生类的对象数组 - 数组中的所有对象必须是相同的静态类型,因此您需要一个数组指向基类的指针。这样,数组的所有元素都是相同的(指针)类型,但它们中的任何一个都可能指向基类或任何派生类的任何对象。

您需要第二个指针使其成为动态数组 - C / C ++中的数组是固定大小的,因此如果您希望能够更改大小,则需要使用指向未指定大小数组的指针(只是一个指针)。

所以你最终需要一个指向容器指针(双指针)的指针。