2013-11-09 95 views
0

所以我有這樣的陣列卡的類型,讓我們把它叫做CardDeck []。我需要保存來自CardDeck [0]的信息以便稍後使用它。我想我可以做到以下幾點:不能從卡轉換爲int

Card memory = theCards[0]; 
    for(int i=0;i<51;i++){ 

      theCards[i]=theCards[i+1]; 
      theCards[51]=theCards[memory]; 

對我來說,正在發生的事情是,首先我創建了一個名爲「類型」卡存儲新的變量,並在theCards [0]的信息被複制到它。

然後每個「卡」向左移動一步,例如在第二個點的卡被移動(或複製)到第一個插槽,第三個卡被移動到第二個插槽,等等直到第52張牌被移動到第51個插槽爲止。然後原來在第一個插槽中的卡,我們保存到memory移動到第52個插槽。

但是最後一行不起作用,它說cannot convert from Card to int,我沒有得到它,我不使用int類型,其所有Card類型所以什麼?

回答

1

試試這個:

Card memory = theCards[0]; 
for(int i=0;i<51;i++){ 
    theCards[i]=theCards[i+1]; 
} 
theCards[51]= memory; 

你試圖使用memory作爲指數入陣。索引始終是一個整數,而memoryCard的一個實例。

當您編寫Card memory = theCards[0];時,您表示要將存儲在位置0的卡存儲在theCards中,並且要將其分配給名爲memory的變量。

如果您要說Card memory = theCards[42];它將存儲在位置42上的卡片要分配給memory

當你說theCards[51]=theCards[memory];你試圖說你想要卡位置某張卡,並且你想將它放在你的位置51的陣列中。但是「位置某張卡」沒有意義,memory不是位置,它是一張實際的卡片。這就像對雜貨商說,你想要冰淇淋號碼太陽棒棒糖。你不想要冰激凌號太陽棒,你想太陽棒。

+0

謝謝..你能解釋一下這是什麼意思「以作爲索引使用」?當我看到那條線我想:卡片[內存]中的「信息」被複制到卡片[51] ..但那不是事實? – user2957672