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