1

Visual Studio 2010(C ++)のC++CLR。

私はこの構造体を持っています:

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を使用する必要がありますか?それは多くのポインタを生成します。正しい方向へのプッシュをいただければ幸いです。

4

1 に答える 1

5

ステートメントに余分な帽子(^)が含まれているだけです。それは読むべきです:

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