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