【发布时间】:2012-05-13 06:54:43
【问题描述】:
我使用 4 个类实现了边(如图形):Node、Node_Linkedlist、Edge、Edge_Linkedlist。 Node 有一个私有 int 成员,Edge 有 2 个对 Node 的引用成员:
private:
Node& in;
Node& out;
Edge 有 2 个有效的构造函数,因此 Edge 支持 Node 和 const Node。
Edge(Node& tmpin, Node& tmpout) : in(tmpin),out(tmpout) {};
Edge(const Node& tmpin, const Node& tmpout) : in(Node(tmpin)),out(Node((tmpout))) {};
<< 运算符:
ostream& operator<<(ostream& out, const Edge& node)
{
out<<node.in<<endl;
return out;
}
这适用于Node,但不适用于const Node。在const Node 中,作为进入操作符范围的调试器,它转储Node 的int 值。为什么运营商不为const Node工作?
【问题讨论】:
-
您想知道出了什么问题(长),或者如何解决(短)?
-
@Beta 你的意思是,除了现有的答案?
-
没关系;我的评论和@LuchianGrigore 的回答交叉了。 (我会写比他更长的解释,但我认为不会更好。)
标签: c++ class operator-overloading constants ostream