Node、Node_Linkedlist、Edge、Edge_Linkedlist の 4 つのクラスを使用して (グラフのように) エッジを実装しました。Node にはプライベート int メンバーがあり、Edge には Node への 2 つの参照メンバーがあります。
private:
Node& in;
Node& out;
Edge には、Edge が と の両方Node
をサポートするような 2 つの作業コンストラクターがあり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
、デバッガーがオペレーターのスコープに入るときに、ノードの int 値をダンプします。演算子が で機能しないのはなぜconst Node
ですか?