STL / CLR容器元素的要求

时间:2011-03-07 14:18:36

标签: c++-cli

说我有一个类如下的课程:

public ref class MyClass {};

我想拥有这样一个类的对象向量:

cliext::vector<MyClass ^> ^myVector;

据我所知,这是引用类型的句柄向量,不是吗?我的意思是,这不是引用类型的向量,因此我不需要定义任何这些要求:

Requirements for STL/CLR Container Elements

在我定义cliext::vector<MyClass> ^myVector的情况下,这些要求是必要的,因为每个元素的副本都会存储在容器中,等等等等。

这一切都正确吗?因为当我从向量中检索元素时,我得到NullReferenceException。我可以看到对象是正确构造的,但是当我从向量中找回它时,它的所有成员都是未定义的。

1 个答案:

答案 0 :(得分:2)

STL / CLR库在最初承诺的发货日期后三年非常交付。很明显,每个人为什么会将原生C ++容器类的所有缺点与托管内存管理的缺点结合起来。没有上升空间,图书馆没有单一的兑换价值。它与C ++类的兼容性只是一种责任,阻止你做正确的事情。查看this page恐怖故事。

不要投入任何时间来完成这项工作,这是完全浪费的努力。使用System :: Collections :: Generic命名空间中的类。