4 개의 클래스 Node, Node_Linkedlist, Edge, Edge_Linkedlist를 사용하여 에지를 구현했습니다 (그래프처럼). 노드는 전용 INT 부재를 가지며, 에지 노드 2 기준 부재 가지고클래스의 const 인스턴스에 print 연산자를 사용하려면 어떻게해야합니까?
가private:
Node& in;
Node& out;
에지 가장자리와 Node
const Node
모두 2 작업 생성자 같은 것을 지원한다.
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;
}
이 const Node
에 대한 Node
작동하지만. const Node
에서는 디버거가 연산자의 범위에 속하므로 Node의 int 값을 덤프합니다. 운영자가 const Node
에서 작동하지 않는 이유는 무엇입니까?
이 어떻게 (짧은) 해결하기 위해 당신이 잘못된 (긴) 무슨 일이 일어나고 있는지 알고 싶어, 나 :
개인적으로, 나는 그들 스마트 포인터를 만들 것? – Beta
@Beta 기존 답변 이외에요? –
신경 쓰지 마세요. 내 의견과 @ LuchianGrigore의 답변이 교차했습니다. (나는 그의 것보다 더 긴 설명을 썼을 것이다. 그러나 그것이 더 좋았을 것이라고 생각하지는 않는다.) – Beta