当VectorView对象的底层Vector被垃圾收集时会发生什么?

时间:2014-01-17 22:23:02

标签: vector windows-runtime c++-cx

假设我有一个函数,它在内部创建一个新的Platform::Collections::Vector^并添加一些项目。如果函数返回通过调用Vector上的Platform::Collections::VectorView^函数获取的GetView(),则可以:

  1. 当函数返回时,Vector会被垃圾收集(也就是说,它会将ref-count降为0)吗?或者调用GetView()会将ref-count增加1?
  2. 如果是这样,返回的VectorView会发生什么?它是否包含Vector中用于创建VectorView的所有项目的副本?
  3. 换句话说,功能是否安全?

    Platform::Collections::VectorView^ MyClass::MyFunction()
    {
        Platform::Collections::Vector<Platform::String^>^ vec = 
            ref new Platform::Collections::Vector<Platform::String^>();
        vec->Append(L"Hello");
        vec->Append(L"World");
        return vec->GetView();
    }
    

0 个答案:

没有答案