Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/145.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 将字符串输入与类数组值C++;(Unix环境)(家庭作业)_C++_Arrays_Unix - Fatal编程技术网

C++ 将字符串输入与类数组值C++;(Unix环境)(家庭作业)

C++ 将字符串输入与类数组值C++;(Unix环境)(家庭作业),c++,arrays,unix,C++,Arrays,Unix,任务: 编写一个C++程序,从菜单中读取菜单信息。项目代码中的第一个字母指定它是开胃菜(A)、主菜(e)、甜点(D)还是饮料(S) 然后提示用户输入订单。对于每个订单,您应该计算并输出总金额。每行中的项目可以按任何顺序列出 A1 E1 D1 S1 S2 D3 E4 A4 E3 E5 A2 A4 S2 S1 D2 D2 E2 X 一旦用户输入“X”,程序应输出最受欢迎的开胃菜、主菜、甜点、饮料。如果存在平局,则可以输出其中任何一个 我遇到的问题是获取输入(例如,A1),然后解析数组中的适当项和位置

任务: 编写一个C++程序,从菜单中读取菜单信息。项目代码中的第一个字母指定它是开胃菜(A)、主菜(e)、甜点(D)还是饮料(S)

然后提示用户输入订单。对于每个订单,您应该计算并输出总金额。每行中的项目可以按任何顺序列出

A1 E1 D1 S1 S2 D3 E4 A4 E3 E5 A2 A4 S2 S1 D2 D2 E2 X

一旦用户输入“X”,程序应输出最受欢迎的开胃菜、主菜、甜点、饮料。如果存在平局,则可以输出其中任何一个

我遇到的问题是获取输入(例如,A1),然后解析数组中的适当项和位置(例如,A1将是test2[1],E1有望是test2[5])。我知道数组已正确填充。我尝试使用以下内容搜索数组:

for(int l = 0; l<SIZE; l++)
{   //I get an operator error every time here       
    if(s == (test2[l]))
    {   //Just a test to see if I am pulling 
        //any information                   
        cout << test2[l].getCode() << endl;
    }           
}   

for(int l=0;l如果您正在比较MenuItem类型的对象,那么您还没有完全实现==运算符

这里请看C++中的运算符重载。< /P>


我想知道以下代码中变量s的类型是什么:

if(s == (test2[l]))
s是包含用户输入的字符串,例如“A1”? 还是s是MenuItem对象

如果它是一个字符串,那么条件就是

if(s == test[l].getCode())
如果s是一个MenuItem对象,那么应该为MenuItem对象实现操作符==

它的签名可能如下所示:

bool operator== (const MenuItem&, const MenuItem&);

实现时需要检查两个MenuItem对象是否具有相同的代码、名称和价格。

我将使用从char到double数组的映射。
if(s == test[l].getCode())
bool operator== (const MenuItem&, const MenuItem&);