0

如果我使用的术语有误,我对编程很抱歉。

我必须创建一个控制台应用程序,用户可以在其中添加、修改、打印和删除食品。

我为我的食物做了一堂课

class food{
private:
bool isBasic;
nmfvg MeatOrOther;
string name;
public:
food::food(){
        isBasic=true;
        MeatOrOther = NONE;
        name = "";
}

food::food(string _name,bool _isBasic, nmfvg _MeatOrOther){
isBasic=_isBasic;
MeatOrOther=_MeatOrOther;
name = _name;
}};

我将用户正在制作的食物放入一系列类型的食物中。

food foods[100];
food temp("food1",true,VEG); 
foods[0]=temp;

1-这是我储存食物的正确方式吗?2-如果是我该如何打印食物的名称[0]?

4

2 回答 2

1

没关系,但可能vector会更好。您可以打印name,通过添加accessor到名称

class food {
//
public:
   string get_name() const { return name; }
};

std::cout << foods[0].get_name() << std::endl;

或通过使用某些功能/operator <<进行输出,或通过创建name公共成员然后简单地使用

std::cout << foods[0].name << std::endl;
于 2013-04-04T05:44:12.347 回答
1

作为一种更好的做法,您可以将食物对象保存在 std::vector 中,而不是像这样的数组:

std::vector<food> foods;
foods.push_back(temp("food1",true,VEG));

要打印姓名成员,您可能需要一个公开的 get 方法:

std::string food::GetName()
{
   return name;
} 

然后您可以通过以下方式打印名称:

std::cout<<foods[0].GetName();
于 2013-04-04T05:44:33.977 回答