2012-09-01 137 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();,发现我意外地将它存储为字符。修复了添加功能,现在它可以工作。 再次感谢您的帮助!