OOP:cout 输出的方法

OOP: Method for cout output

我必须创建一个方法,在屏幕上打印所有收集的数据,这是我的尝试:

bool UnPackedFood::printer() {

        cout << " -- Unpacked Products --" << endl;

        cout << "barcode: " << getBarcode() << endl;
        cout << "product name: " << getBezeichnung() << endl << endl;
        cout << "weight: " << getGewicht() << endl;
        cout << "price" << getKilopreis() << endl;

    return true;
}

我的主要是:

UnPackedFood upf;
cout << upf.printer();

这向我展示了正确的输出,但它仍然返回一个 bool 值,我实际上并不需要它。我试图将该方法声明为无效,但那不起作用。

三种可能的解决方案:

  1. 不要做cout << upf.printer();,不需要输出,因为函数本身会输出。

  2. 不是写入 printer 函数中的输出,而是附加到字符串和 return 字符串。

  3. UnPackedFood重载operator<<,这样你就可以std::cout << upf;

您应该为输出流重载 << 运算符。然后当您键入 cout << upf 时,它将打印您的产品。

查看 this example 并尝试执行类似于以下代码段的操作:

class UnPackedFood {   
    ...
    public:
       ...
       friend ostream & operator<< (ostream &out, const UnPackedFood &p);
};

ostream & operator<< (ostream &out, const UnPackedFood &p) {
        out << " -- Unpacked Products --" << endl;
        out << "barcode: " << p.getBarcode() << endl;
        out << "product name: " << p.getBezeichnung() << endl << endl;
        out << "weight: " << p.getGewicht() << endl;
        out << "price" << p.getKilopreis() << endl;
        return out;
}