Я реализовал ребра (как в графах), используя 4 класса: Node, Node_Linkedlist, Edge, Edge_Linkedlist. узел имеет частный элемент ИНТ и края имеет 2 эталонные пользователей к узлу:Как использовать оператор печати для экземпляра const класса?
private:
Node& in;
Node& out;
Край 2 рабочих конструкторами таким образом, что край поддерживает как 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
, в качестве отладчика в область действия оператора, он выгружает значения int для узла. Почему оператор не работает для const Node
?
Вы хотите знать, что происходит не так (долго), или как это исправить (короткий)? – Beta
@Beta Вы имеете в виду, кроме существующих ответов? –
Ничего. мой комментарий и ответ @ LuchianGrigore пересек. (Я бы написал более длинное объяснение, чем его, но я не думаю, что это было бы лучше.) – Beta