我使用 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
?