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 に答える