C++/CLI ハンドル(^) とその仕組みに興味があります。例:
私が理解できない最初のことは、ここで受け入れられた答えは、キャレットが * (ポインター) と同等の管理対象であると言っているということです。ただし、* とは異なり、^ に値を直接割り当てることができます。
int ^num;
num = 4;
これは C++ では機能しません。
int *num2;
num2 = new int[1];
num2 = 10;
この動作が観察されるのはなぜですか? また、Microsoft Webpageでは、オブジェクトのメンバーを指すことはできず、ポインター演算はサポートされていないと述べています。したがって、次のコード スニペットはどちらもコンパイルに失敗します。
int ^num3 = gcnew int[10];
for(int i = 0; i<10; i++)
%(num3 + i) = i
また
for(int i = 0; i<10; i++)
(num3 + i) = i
どうして???
それは私に最後の質問をもたらします: C++/CLI で次の int ネイティブ/通常の C++ コード スニペットに相当するものは何ですか?
int *array1;
array1 = new int[ 10];
for( int i = 0; i < 10; i++)
*(array1 + i ) = i;