首页 > 解决方案 > 我将如何操作重载“<<”?

问题描述

我的教授说 << 的运算符重载在这里是可选的,但我想知道我该怎么做,因为我只能在不使用重载的情况下弄清楚它。

这是我的代码中的一个函数:

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;
}

标签: c++overloadingoperator-keyword

解决方案


你可以做类似的事情

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);

在您的班级中访问私人成员。


推荐阅读