[英]std::ostream Composition of Classes
我們有以下情況:
在 A 類和 B 類中,我們覆蓋了<<
運算符。
現在,我們有一個新的類 C,其中包含 A 和 B 對象的數據成員。
我們將如何在這里覆蓋<<
運算符?
更具體地說,我們需要這樣的東西:
cout<<objectOfC
對應cout<<correspondingObjectOfA<<correspondingObjectOfB
我不知道如何修改 ostream& 對象以將其返回。
ostream& operator<< (ostream& out, const C& obj){ // This is a friend function declared in C.h
A* a = obj.AObject; // Returns the corresponding object of A
B* b = obj.BObject; // Returns the corresponding object of B
// Need to modify out somehow to 'cout' A and B respectively when cout is called on an object of C
return out;
}
任何幫助將不勝感激。 謝謝 :)
如果您已經有適當的A
和B
覆蓋,只需使用它們。
ostream& operator<< (ostream& out, const C& obj) {
out << *obj.AObject << *obj.BObject;
return out;
}
因為operator<<
返回它的ostream
參數,你可以進一步壓縮這個:
ostream& operator<< (ostream& out, const C& obj) {
return out << *obj.AObject << *obj.BObject;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.