C ++ CLR,在Visual Studio 2010(C ++)中。
我有这个结构:
value struct Triangle{
static array<int>^ v = gcnew array<int>(3);
static array<int>^ t = gcnew array<int>(3);
static array<int>^ n = gcnew array<int>(3);
};
我在班级的“私人”部分声明了以下内容:
static array<Triangle^>^ triangles = gcnew array<Triangle>(MAX_POLYGONS);
我收到此错误,我不知道这意味着什么(因为它似乎与自己相矛盾):
error C2440: 'initializing' : cannot convert from 'cli::array<Type> ^' to 'cli::array<Type> ^'
with
[
Type=Triangle
]
显然它不喜欢结构。我应该使用ref而不是value吗?这产生了很多指针。任何推进正确方向都将受到赞赏。
答案 0 :(得分:5)
你的陈述中只有一个额外的帽子(^)。它应该是:
static array<Triangle>^ triangles = gcnew array<Triangle>(MAX_POLYGONS);