【问题标题】:Are objects created as instance variables automatically ref counted?作为实例变量创建的对象是否会自动引用计数?
【发布时间】:2012-11-05 15:00:17
【问题描述】:

我的类中的一个实例变量是另一个 ref 类的对象。据我所知,这很好用,但恐怕如果不显式调用ref new Foo(...),引用计数将无法正确初始化。我的担心是对的,还是我是清楚的?

示例代码

 ref class Foo {
     public:
         Foo();
         virtual ~Foo();
 }

 ref class Bar {
     public:
         Bar();
         virtual ~Bar();

         Foo _myNewFoo;
 }

_myNewFoo 会导致泄漏吗?或者这样可以吗?

【问题讨论】:

  • 您的标签没有帮助。这不是 C++。它不是winapi。它是 C++/CLI 不是吗?你应该这么说。
  • 它是 C++/CX。这段代码没有问题,_myNewFoo 的引用计数将被正确初始化。更大的问题是为什么您要声明看起来不像您需要导出到其他 WinRT 语言的类的 ref 类。只需根据自己的需要使用普通的 C++ 类。
  • @DavidHeffernan:Windows 术语让我感到困惑。我不确定 winapi 到底指的是什么,所以我去掉了那个标签,但这绝对是 C++/Cx 或 Visual C++(取决于你问谁)。
  • @HansPassant:感谢您的回答。如果您实际上将其添加为我的问题的答案,我会将其标记为已解决。至于你的第二部分——这些只是演示类。我绝对会在我的真实课程中充分利用其他 WinRT API。
  • 哎呀,我跟不上这些语言扩展!我认为winapi适用于win32。我会改用 winrt 标签。

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


【解决方案1】:

Hans Passant 用一个合适的答案评论了最初的问题:

它是 C++/CX。这段代码没有问题,_myNewFoo 的引用计数 将被正确初始化。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-05-24
    • 1970-01-01
    • 1970-01-01
    • 2012-01-29
    • 2010-12-22
    • 1970-01-01
    • 2017-12-22
    • 1970-01-01
    相关资源
    最近更新 更多