C++ CLR,在Visual Studio 2010(C++)中。不能從'cli :: array <Type> ^'轉換爲'cli :: array <Type> ^'
我有這樣的結構:
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嗎?這產生了很多指針。任何推入正確的方向將不勝感激。
對於它的價值,您的Triangle結構包含3個引用類型。如果您擔心在堆上創建對象以及您可能如何影響垃圾回收器,請考慮使用另一個結構或通過直接聲明9個整數來創建值類型。 – 2012-07-28 01:37:25