2016-10-01 77 views
-1

假設我有一個類Crate,它有兩個成員,widthheight。現在假設我想行std::cout << myCrate << '\n';打印此:用戶定義的類可以使用std :: cout <<定製行爲嗎?

#---# 
| | 
| | 
#---# 

如果myCratewidth = 5height = 4。不同的widthheight應導致不同的箱子大小。我可以定義這種行爲嗎?通過超載運算符<<?我會如何去做這件事?

請記住,這是一個通用示例,並非特定於上面的Crate類。

+1

通過重載''<<操作。 – LogicStuff

+0

我想要更具體的說明。 – Johan

+1

在您正在學習C++的書中,您會找到更具體的說明。 stackoverflow.com不是代碼寫入服務。 –

回答

2

是的,您可以通過重載operator<<來完成,如下所示。通過將該函數聲明爲Crate的friend,它將可以訪問所有私有數據成員,從而允許您在合適的情況下表示數據。

Crate.hpp

class Crate { 
    ... 
    friend std::ostream& operator<< (std::ostream& os, const Crate& c); 
    ... 
} 

Crate.cpp

std::ostream& operator<< (std::ostream& os, const Crate& c) { 
    os << "whatever you want to print" 

    return os; 
} 
相關問題