我创建了一个类,允许用户输入他们的邮寄地址,订单日期,订购的cookie类型和数量。还有其他错误,但我迟到了,在我的教授的帮助下,我已经修好了。现在剩下的就是我需要能够更改代码以重载I / O流操作符,以便可以在标准输入和输出语句中使用这些对象。
我不确定每个人都需要看到的代码的所有部分,但我会发布我认为需要的部分,以便我正在尝试做什么。
我需要把它放在输出()的位置,我有cout << order << endl;
我会查看网络,并希望在今晚准备就绪。感谢大家的投入。
由于课堂上的其他学生复制我的代码片段来完成他们的工作(已知有可能但没有想到),因此被指示删除我的代码
但是,我的代码已经完成了。
答案 0 :(得分:1)
就比较而言,你最好比较所有上部或所有下部(而不是每个单词的第一个字母上部),设置方法更简单。
此外,您应养成在代码周围添加大括号的习惯
为什么你的循环中有一个神奇数字6?特别是当你只有五(5)个元素时。
也许循环应该是
...
int loop_size = sizeof(flavors)/sizeof(flavors[0]);
for (int i = 0; i < loop_size; ++i)
{
if (flavors[i] == cookieOrdered)
{
valid_option = true;
break;
}
}
答案 1 :(得分:1)
实施两项功能:
basic_ostream & operator<< (basic_ostream& ostr, const CookieOrder& co)
basic_istream & operator>> (basic_istream& istr, CookieOrder& co)
使用operator<<=
时将调用cout << order << endl;
函数,并且在使用operator>>
(流提取)运算符时将调用>>
函数。如何实现流提取操作符非常小心。
您可能希望将friend
中的任何一个声明为CookieOrder
,因为这将允许函数访问类的私有部分,就好像该函数是该类的成员一样。
编辑以回复问题中的更改
像以前一样照顾你的班级:class CookieOrder {
市民:
//如前所述的公共方法 私人:
//以前的私人部分
};
basic_ostream
&amp;运营商LT;&LT; (basic_ostream&amp; ostr,const CookieOrder&amp; co);
basic_istream
&amp;运营商GT;&GT; (basic_istream&amp; istr,CookieOrder&amp; co);
仅使用CookieOrder类的公共接口实现这两个函数。
例如:
basic_ostream
&amp;运营商LT;&LT; (basic_ostream&amp; ostr,const CookieOrder&amp; co)
{
ostr&lt;&lt; co.get_customerName()&lt;&lt; ENDL;
/ *输出的其余部分* /
}
这些函数不是 CookieOrder类的成员,它们是普通函数,没有对CookieOrder类或类的实例的特殊访问权。
答案 2 :(得分:0)
提示:在C ++中查找不区分大小写的字符串比较