我知道,如果我想将我的 C++ 代码作为 WinRT 组件共享给 .Net 和 JavaScript 代码,我必须将我的类声明为 public ref MyClass sealed
。但是,如果我有一个我只想在我的应用程序中使用的类,它是否需要是一个 ref 类?
假设我有一个简单的建筑类。是否可以定义如下
#pragma once
class Building
{
public:
Building(int cap);
~Building(void);
int get_capacity() {return capacity;}
private:
int capacity;
};
然后像这样使用
std::shared_ptr<Building> bldg = std::make_shared<Building>(5);
我仍然想使用 make_shared 将其实例化为 shared_ptr 以获取引用计数,但我只是很困惑我需要将其设为 ref 类。
最佳答案
Herb Sutter recommends (12 分钟内)您仅在程序边界使用非标准 C++/CX,您的 C++ 代码必须与 WinRT 交互。因此,这意味着您只打算从 C++ 使用的类不需要是 ref 类或使用 ISO 标准 C++ 以外的任何东西。
关于c++ - 我的 C++ 类必须是 Windows 8 Metro 风格应用程序中的引用类吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10424032/