2012-09-01 139 views
0

我試圖列出成分的向量。listfunction不按預期方式工作

該類成分只有2個成員和2個成員函數(構造函數除外)。它包含一個名稱和一個類別,它具有返回名稱的函數「getName」和返回類別的「getCategory」。然後將這些成分儲存在載體內。

這裏是應該列出櫃的內容代碼:

for(int i = 0; i < cabinet.size(); i++) 
{ 
    cout << cabinet[i].getName(); 
    switch(cabinet[i].getCategory()) 
    { 
     case 1: cout << "Alcohol" << endl; 
       break; 
     case 2: cout << "Liqueur" << endl; 
       break; 
     case 3: cout << "Brew" << endl; 
       break; 
     case 4: cout << "Non alcohol" << endl; 
       break; 
     case 5: cout << "Wine" << endl; 
       break; 
    } 
} 

我得到什麼:

[first ingredient][second ingredient][thrid ingredient]...etc 

那麼,爲什麼不是我的switch語句的工作?

+1

它「不工作」的症狀是什麼? – juanchopanza

+0

需要查看代碼的其餘部分。您發佈的代碼沒有明顯錯誤。另外你對什麼是錯的解釋不是很清楚。請張貼您得到什麼,以及您的預期。 – john

+3

由於getCategory不提供1到5之間的整數?在交換機的末尾添加'default:cout << cabinet [i] .getCategory();'以查明發生了什麼。 – JohnB

回答

0

感謝您的幫助!我試着加入default: cout << cabinet[i].getCategory();,發現我意外地將它存儲爲字符。修復了添加功能,現在它可以工作。 再次感謝您的幫助!