2012-03-01 87 views

回答

2

由於@Mysticial指出的那樣,你需要重載operator>>做到這一點。

那超載可以不是雖然是myClass的成員。它必須是someClass的成員,否則就是全局超載。

class someClass { 
// ... 
    someClass &operator>>(myClass &); 
}; 

或:

someClass &operator>>(someClass &, myClass &); 

如果操作員沒有/不能改變someClass對象的狀態,你可能想通過傳遞const引用的第一個參數(在這種情況下,你'd也返回一個const引用)。

當然,返回someClass是不是真的需要,但它的這種運營商的正常接受的做法(它允許鏈接的運營商像a >> b >> c;

+0

那麼如何編輯myClass,使其能夠「接收」某個類「發送它」的內容。我無法編輯某個類。 – Cheetah 2012-03-01 20:27:05

+0

如上所示,如果你必須單獨離開'someClass',那麼你需要讓你的重載成爲全局的(通常是'myClass'的朋友)。正如Mehrdad指出的那樣,如果您使用的是名稱空間,那麼您很可能需要使用ADL才能找到它(您希望將其放在與myClass相同的名稱空間中)。 – 2012-03-01 20:33:06

2

>>操作。你想超載operator>>。簽名會是這樣的:

someClass& operator>>(someClass&, myClass&); 
相關問題