Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 使用「;“双指针”;C+中的动态数组+;_C++_Arrays_Double Pointer - Fatal编程技术网

C++ 使用「;“双指针”;C+中的动态数组+;

C++ 使用「;“双指针”;C+中的动态数组+;,c++,arrays,double-pointer,C++,Arrays,Double Pointer,好的,所以我有一个任务,我被卡住了,我会感谢任何帮助 基本上我有一个基类和两个派生自基类的类,这不是问题。但现在我需要创建一个“容器”类,它有一个“双指针”动态数组,其中包含两个类的实例 我的问题是:为什么双指针数组在这里对我有帮助?我对这种双指针的业务似乎很困惑。通过谷歌搜索,我发现双指针基本上是指向指针的指针,但这对我有什么帮助?我如何声明双指针动态数组 另外,我如何在同一数组中存储两个不同的类(尽管派生自同一基类),这不是两种不同的数据类型吗?您需要一个指针才能使其成为可能属于任何派生类的

好的,所以我有一个任务,我被卡住了,我会感谢任何帮助

基本上我有一个基类和两个派生自基类的类,这不是问题。但现在我需要创建一个“容器”类,它有一个“双指针”动态数组,其中包含两个类的实例

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


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

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

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


因此,您最终需要一个指向容器指针(双指针)的指针。

这称为多态性。构造一个基类(例如Vehicle)和各种子类(例如Car、Bus)。然后,您可以使用智能指针的功能将所有汽车和公交车存储在车辆容器中。我问了一些类似的问题。建议,添加一个代码示例