4

我知道,如果我想将我的 C++ 代码作为 WinRT 组件共享给 .Net 和 JavaScript 代码,我必须将我的类声明为public ref MyClass sealed. 但是,如果我有一个只想在我的应用程序中使用的类,它是否需要是一个 ref 类?

假设我有一个简单的 Building 类。可以定义如下

#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 类感到困惑。

4

1 回答 1

6

Herb Sutter 建议(12 分钟后)您只在程序边界使用非标准 C++/CX,您的 C++ 代码必须与 WinRT 交互。所以这意味着你只打算从 C++ 中使用的类不需要是 ref 类或使用 ISO 标准 C++ 以外的任何东西。

于 2012-05-03T03:21:16.563 回答