オブジェクトの配列を初期化し、私はいくつかの初期化コードとのトラブルを抱えている:私は現在、カードゲームに取り組んでいます
// in my class...
Card cards[20];
// in method...
for(int i = 0; i <= 20;i++)
cards++ = new Card(i, /*i as char +*/ "_Card.bmp");
トラブルが私のコンパイラのがcards++
はリットルではないことを私に告げることです-値。ポインタ配列の等価物全体を読み上げましたが、私はそれを理解していると思っていましたが、うーん、それを動作させることはできません。 cards
がポインタに劣化し、new
演算子が私の新しいカードインスタンスの場所へのポインタを与えるので、私の理解は、上記のコードはコンパイルする必要があります。右?
添え字も試してみましたが、cards+i
、cards++
、cards[i]
という同じことを言っているだけではありませんか?私はそれらのそれぞれがl値であり、ポインタとして扱われると考えました。
カード+私はカード+ iを返します。カード++はカードを1つずつインクリメントします。 cards [i]は、カードのi番目の要素への参照を返します。彼らはすべて異なっている。 –