Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/134.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++_Pointers_Typedef - Fatal编程技术网

C++ 如何在c+中定义此类型+;?

C++ 如何在c+中定义此类型+;?,c++,pointers,typedef,C++,Pointers,Typedef,我试着把它当作一个三元组,就像这样: Foo* (*)[8]? 但是我得到了不匹配的类型,所以我只想定义实际的类型,但不确定符号应该是什么?这是一个固定的6x8指针矩阵 Foo*** = new Foo* [6][8]; 如果是指针矩阵(而不是指向矩阵的指针),请不要new该矩阵。相反,您需要创建Foo的new实例 Foo *mat[6][8]; 答案在问题的第一行 Foo *(*mat)[6][8] = new Foo*[6][8]; 或者,如果要使用typedef using Foo

我试着把它当作一个三元组,就像这样:

Foo* (*)[8]?
但是我得到了不匹配的类型,所以我只想定义实际的类型,但不确定符号应该是什么?这是一个固定的6x8指针矩阵

Foo*** = new Foo* [6][8];
如果是指针矩阵(而不是指向矩阵的指针),请不要
new
该矩阵。相反,您需要创建
Foo
new
实例

Foo *mat[6][8];

答案在问题的第一行

Foo *(*mat)[6][8] = new Foo*[6][8];
或者,如果要使用
typedef

using Foo2D = Foo*(*)[8];
Foo2D ptr = new Foo* [6][8];

但是,不要使用这两种方法中的任何一种。使用
向量
数组库来处理多维矩阵。

您可以这样分解它:

typedef Foo*(*Foo2D)[8];

如果你使用C++ 11,那么我强烈建议使用<代码> STD::数组,6 > < />代码,我还考虑用智能指针类型替换<代码> Foo*<代码>(如<代码> STD::UnQuyJPPT)。如果你看到任何可怕的方括号,就用星号来解决这个问题,直到编译器停止抱怨;但是它说,将Foo*(*)[8]分配给Foo**[8]是不兼容的——不确定表示法
typedef Foo*(*Foo2D)[8];
typedef Foo *FooPtr;
typedef FooPtr FooPtrMatrix[6][8];

FooPtrMatrix *foo = new FooPtrMatrix;