auto foo = ref new Foo();什么是“参考”?

时间:2011-09-23 14:00:27

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

我正在观看来自// build /的视频,并且有几位MS开发人员在他们的C ++ 11程序中使用了这样的语法:

auto foo = ref new Foo();

我理解除了“ref”之外,这一行中的所有功能。这是什么意思?

3 个答案:

答案 0 :(得分:10)

即将推出的Visual C ++编译器为处理WinRT对象添加了这种语法(后者又是下一代COM,我们现在经历了什么?COM,DCOM,COM +,ActiveX,......)

这一行几乎相当于:

com_ptr_t<Foo> foo = CreateInstance<Foo>();

但是,com_ptr_t也有新版本,使用语法Foo^

答案 1 :(得分:8)

“ref new”是2个令牌关键字。它指示编译器实例化Windows运行时对象并自动管理对象的生命周期(通过“^”运算符)。

实例化一个Windows运行时对象会导致分配,但它不必在堆上。

答案 2 :(得分:2)

在这种情况下,

ref表示引用计数。使用ref的类是WinRT组件,它具有开箱即用的引用计数机制。