1

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 吗?这会产生很多指针。任何朝着正确方向的推动将不胜感激。

4

1 回答 1

5

您的声明中只是多了一个帽子 (^)。它应该是:

static array<Triangle>^ triangles = gcnew array<Triangle>(MAX_POLYGONS); 
于 2012-07-27T22:10:13.587 回答