2017-03-08 1 views
3

나는이 유사한 구조를 만들고 싶었 오류의 종류, 구문 오류 또는 "인스턴스화 할 수 없습니다"GetNext 재정의 된 파생 클래스를 인스턴스화하려고 생각조차 포함.C++ 중첩 된 클래스 메소드

질문 : 그 구조는 C++에서도 허용되며 올바르게 구현하는 방법입니까?

+0

내부'Vertex' (그래서 내'그래프 '), 당신은 단순히'Vertex' 대신'유형 이름 그래프 :: Vertex'로 사용할 수 있습니다. – Jarod42

답변

4

GetNextVertex이지만 VertexGetNext 멤버 함수가 없습니다.

Graph의 메소드를 Vertex에서 호출하려면 Graph 변수가 필요합니다. 예 : 멤버 변수는 :

struct Vertex { 
    Graph& graph; 

    std::vector<typename Graph<W>::Vertex> next() { 
     return graph.GetNext(*this); 
    } 
};