Error: illegal use of this type as an expression. list in vc++
Error: illegal use of this type as an expression. list in vc++
我正在尝试制作一个需要使用 list.i 的项目,但它似乎无法正常工作。
以下是我的代码:
ref class MyClass2
{
public:
int x;
String^ str;
}
List<MyClass2> lst =gcnew List<MyClass2>(); //here is the error
我在 visual studio 2008 年工作。
gcnew
returns一个引用。您不能只将它分配给一个对象。此外,您正在存储引用,而不是对象。因此,只需这样做:
List<MyClass2^>^ lst = gcnew List<MyClass2^>(); //note what I'm assigning to
同样,对于标准 new
你必须使用指针。
您需要这个(请注意 总共使用了三个 ^
:
List<MyClass2^>^ lst =gcnew List<MyClass2^>();
这是因为MyClass2
是引用类型,只能和MyClass2^
一起使用,和gcnew
一起分配(和List
一样)。
因此你有一个对 List
的引用,它可以包含对 MyClass2
.
的引用
然后,添加项目:
MyClass2^ mc = gcnew MyClass2();
mc->x = 2; //Set values
lst->Add(mc);
我正在尝试制作一个需要使用 list.i 的项目,但它似乎无法正常工作。 以下是我的代码:
ref class MyClass2
{
public:
int x;
String^ str;
}
List<MyClass2> lst =gcnew List<MyClass2>(); //here is the error
我在 visual studio 2008 年工作。
gcnew
returns一个引用。您不能只将它分配给一个对象。此外,您正在存储引用,而不是对象。因此,只需这样做:
List<MyClass2^>^ lst = gcnew List<MyClass2^>(); //note what I'm assigning to
同样,对于标准 new
你必须使用指针。
您需要这个(请注意 总共使用了三个 ^
:
List<MyClass2^>^ lst =gcnew List<MyClass2^>();
这是因为MyClass2
是引用类型,只能和MyClass2^
一起使用,和gcnew
一起分配(和List
一样)。
因此你有一个对 List
的引用,它可以包含对 MyClass2
.
然后,添加项目:
MyClass2^ mc = gcnew MyClass2();
mc->x = 2; //Set values
lst->Add(mc);