2012-03-01 85 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&); 
相关问题