【发布时间】: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