C++ Objective-C+中的2D数组声明+;错误
我正在用最新的SDK开发一个iOS应用程序 我想在Objective-C++中创建一个C++ Objective-C+中的2D数组声明+;错误,c++,ios,objective-c,C++,Ios,Objective C,我正在用最新的SDK开发一个iOS应用程序 我想在Objective-C++中创建一个int[][],但我不知道怎么做: 这是一段MyClass.mm: static const int MAX_NUM_DETECTIONS = 10; static const int PATCH_SIZE = 100; @interface MyClass () { int[MAX_NUM_DETECTIONS][PATCH_SIZE*PATCH_SIZE] _results; } @end 这
int[][]
,但我不知道怎么做:
这是一段MyClass.mm
:
static const int MAX_NUM_DETECTIONS = 10;
static const int PATCH_SIZE = 100;
@interface MyClass ()
{
int[MAX_NUM_DETECTIONS][PATCH_SIZE*PATCH_SIZE] _results;
}
@end
这行代码会产生以下两个错误:
应为成员名或“;”在声明说明符之后。期望“;”在申报表末尾 我在
字符下得到错误
如何声明和初始化该2D数组?您需要
int _results[MAX_NUM_DETECTIONS][PATCH_SIZE*PATCH_SIZE] ;
您需要将[]
括号放在变量名之后:
例如:
声明2d数组的正确方法是在变量名后面放两个方括号,所以在您的例子中应该是
int _results[MAX_NUM_DETECTIONS][PATCH_SIZE*PATCH_SIZE];
据我所知,Objective-C++必须是*.mm
文件而不是*.m
@rokimoki他可能会覆盖该.m
文件以编译为Objective-C++。可能,但他可能不知道这些信息,这就是我只发表评论的原因。那么,这个变量是初始化的还是我必须做其他事情?如果你知道C/C++,这是相同的方式,但数组只是声明的,而不是初始化的。
int _results[MAX_NUM_DETECTIONS][PATCH_SIZE*PATCH_SIZE];