Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我对 C++ 有经验,但我才开始学习 C++/CLI。我经常注意到以下模式:
array<String^>^ x;
你们怎么看这个?我的解释是,这是字符串数组,我们希望它们都在托管堆上,这就是我们使用 String^ 的原因,但我们也希望向量在托管堆上,这就是我们有
array<something>^.
正确的?
C++cliref class必须位于托管堆上。实际的非托管堆实例被阻塞。
ref class
两者String和array都是ref class类型,因此它们必须位于托管堆上。
String
array
C++,为了提醒用户这些是垃圾回收指针类型,而不是字面量或传统指针类型,要求您以^.
^
虽然这是多余的(所有实例array<>都是array<>^- 因此在没有此类^标记的 C# 中),但当您混合托管代码和非托管代码时,提醒您这是托管类型而不是普通类型可能会有所帮助。
array<>
array<>^