c++ - 我将如何操作重载“<<”?
问题描述
我的教授说 << 的运算符重载在这里是可选的,但我想知道我该怎么做,因为我只能在不使用重载的情况下弄清楚它。
这是我的代码中的一个函数:
void listProducts()
{
//list all the available products.
cout << "Available products:\n";
for(int i=0; i<numProducts; i++)
cout << products[i]->getCode() << ": " << products[i]->getName() << " @ "
<< products[i]->getPrice() << "/pound.\n";
}
这是 product.cpp 文件:
Product :: Product(int code, string name, double price) {
this->code = code;
this->name = name;
this->price = price;
}
int Product:: getCode(){
return code;
}
string Product :: getName(){
return name;
}
double Product :: getPrice(){
return price;
}
解决方案
你可以做类似的事情
std::ostream & operator<<(std::ostream &out,const classname &outval)
{
//output operation like out<<outval.code<<":"<<outval.name<<"@"<<outval.price;
return out;
}
和
friend std::ostream & operator<<(std::ostream &out,const classname &outval);
在您的班级中访问私人成员。
推荐阅读
- jquery - 如何将查询结果合并为新列?
- alfresco - 如何在 Alfresco Share Controls 中添加新的 JS 库?
- javascript - 在Js中如何对数组进行操作还要考虑数组可能只是一个元素
- python - 如何在python中合并2个不同长度的列表
- zabbix - Zabbix server set value from agent failed: ZBX_TCP_READ() timed out
- javascript - 使用字符串键映射嵌套的 JavaScript 对象,然后过滤列表
- python - 从 Python 中的大字符串中删除编码的 HTML 标记
- python - 每个 mini-Batch 是否只更新一次权重/偏差?
- html - 在我的页脚中,当我的屏幕宽度小于 700 像素时,如何将社交图标分成 2 行?
- sql - 如何为一系列数据库选择正确的索引方式?