0

私は C++ の経験がありますが、C++/CLI を学び始めたばかりです。私は次のパターンによく気づきます。

array<String^>^ x;

皆さんはこれについてどう思いますか?私がこれを解釈する方法は、これは文字列の配列であり、それらすべてをマネージド ヒープに配置する必要があるため、String^ を使用しますが、ベクターもマネージド ヒープに配置する必要があるため、

array<something>^.

正しい?

4

1 に答える 1

3

C++cliref classはマネージド ヒープ上に存在する必要があります。実際の管理されていないヒープ インスタンスはブロックされます。

Stringとはどちらarrayref class型であるため、マネージド ヒープ上に存在する必要があります。

C++ では、これらがガベージ コレクションされたポインター型であり、リテラルや従来のポインター型ではないことをユーザーに思い出させるために、型を . で終了する必要があります^

これは冗長ですが ( のすべてのインスタンスがarray<>存在するarray<>^ため、そのようなトークンがない C#^では)、これはマネージド型であり、通常の型ではないことに注意してください。マネージド コードとアンマネージド コードを混在させる場合に役立ちます。

于 2013-07-17T19:51:09.000 に答える