私は C++ の経験がありますが、C++/CLI を学び始めたばかりです。私は次のパターンによく気づきます。
array<String^>^ x;
皆さんはこれについてどう思いますか?私がこれを解釈する方法は、これは文字列の配列であり、それらすべてをマネージド ヒープに配置する必要があるため、String^ を使用しますが、ベクターもマネージド ヒープに配置する必要があるため、
array<something>^.
正しい?
C++cliref classはマネージド ヒープ上に存在する必要があります。実際の管理されていないヒープ インスタンスはブロックされます。
Stringとはどちらarrayもref class型であるため、マネージド ヒープ上に存在する必要があります。
C++ では、これらがガベージ コレクションされたポインター型であり、リテラルや従来のポインター型ではないことをユーザーに思い出させるために、型を . で終了する必要があります^。
これは冗長ですが ( のすべてのインスタンスがarray<>存在するarray<>^ため、そのようなトークンがない C#^では)、これはマネージド型であり、通常の型ではないことに注意してください。マネージド コードとアンマネージド コードを混在させる場合に役立ちます。