2012-05-03 6 views
4

.NETコードとJavaScriptコードにWinRTコンポーネントとしてC++コードを共有したい場合は、クラスをpublic ref MyClass sealedと宣言しなければならないことは知っています。しかし、私がクラスを持っていれば、私のアプリケーション内で使用したいのはrefクラスでなければならないのでしょうか?C++クラスはWindows 8 Metroスタイルアプリケーションのrefクラスでなければなりませんか?

単純なBuildingクラスがあるとします。それは

#pragma once 
class Building 
{ 
public: 
    Building(int cap); 
    ~Building(void); 
    int get_capacity() {return capacity;} 
private: 
    int capacity; 
}; 

を次のように定義してから、私はまだ、参照カウントを取得するためにmake_shared使用してのshared_ptrとして、それをインスタンス化したいだろうが、私は何でちょうど困惑している。この

std::shared_ptr<Building> bldg = std::make_shared<Building>(5); 

のように使用することができポイント私はそれをrefクラスにする必要があります。

+0

'auto bldg = std :: make_shared (5);' – bames53

答えて

6

Herb Sutter recommends(12分)は、プログラムの境界で非標準のC++/CXのみを使用し、C++コードはWinRTとやりとりする必要があります。つまり、C++からしか使用しないクラスには、refクラスやISO標準C++以外のものを使用する必要はありません。

関連する問題