3
나는이 유사한 구조를 만들고 싶었 오류의 종류, 구문 오류 또는 "인스턴스화 할 수 없습니다"GetNext 재정의 된 파생 클래스를 인스턴스화하려고 생각조차 포함.C++ 중첩 된 클래스 메소드
질문 : 그 구조는 C++에서도 허용되며 올바르게 구현하는 방법입니까?
나는이 유사한 구조를 만들고 싶었 오류의 종류, 구문 오류 또는 "인스턴스화 할 수 없습니다"GetNext 재정의 된 파생 클래스를 인스턴스화하려고 생각조차 포함.C++ 중첩 된 클래스 메소드
질문 : 그 구조는 C++에서도 허용되며 올바르게 구현하는 방법입니까?
GetNext
은 Vertex
이지만 Vertex
은 GetNext
멤버 함수가 없습니다.
Graph
의 메소드를 Vertex
에서 호출하려면 Graph
변수가 필요합니다. 예 : 멤버 변수는 :
struct Vertex {
Graph& graph;
std::vector<typename Graph<W>::Vertex> next() {
return graph.GetNext(*this);
}
};
내부'Vertex' (그래서 내'그래프'), 당신은 단순히'Vertex' 대신'유형 이름 그래프 :: Vertex'로 사용할 수 있습니다. –
Jarod42