web-dev-qa-db-ja.com

マネージC ++参照クラス

ref classとは何か、またクラスを「参照クラス」として宣言するタイミングについての良いサイトや説明はありますか?

Msdnの説明では十分ではありませんでした。

base_type(オプション)

基本タイプ。 refクラスまたはref構造体は、0個以上のマネージインターフェイスと0個または1個のrefタイプから継承できます。値クラスまたは値構造体は、0個以上の管理対象インターフェースからのみ継承できます。

参照

refキーワードは、クラスまたは構造がヒープに割り当てられ、それへの参照が関数に渡されるか、クラスメンバーに格納されることをコンパイラーに指示します。 valueキーワードは、クラスまたは構造内のすべてのデータが関数に渡されるか、メンバーに格納されることをコンパイラーに指示します。

34
freshWoWer

基本的に、ref classはCLRクラスです。 C#のclassに相当します。

これにより、CLRによって管理される参照型が作成されます。 C#から使用できるクラスを作成する場合は、通常、ref classを作成します。 (ところで、ref structはまったく同じことを行いますが、C++の標準クラスとstructのデフォルトのアクセシビリティルールを使用します。)

また、参考までに-値の型(C#ではstruct)を作成するには、value classまたはvalue structを使用します。

これらの新しいキーワードの多くの良い説明は C++/CLIキーワードに関するハーブサッターの投稿 です。これは、C++/CLIを使い始めたばかりで、C++の背景がしっかりしている場合に役立ちます。

56
Reed Copsey