私はグラフクラスGraph
と優先クラスの2つのクラスPqueue1
とPqueue2
を持っています。どちらのプライオリティキューも、Pqueuei(Graph &g)
という形式のコンストラクタを持ちます。ここで、i
= 1
,2
の2つのコンストラクタがあり、いずれもDijkstra
という形式のものです。形式はvoid Dijkstra(Node*)
です。最短経路木はg
に書き込まれます。関数は異なるクラスのメソッドへのポインタ
ここでは、いくつかの条件(密度がg
)に応じて2種類の優先度キューを構築し、関連するDijkstra
メソッドを呼び出す関数を記述します。
どうすればいいですか?
Iは、関数ポインタdijk
について考えたが、両方のクラスのメソッドであるので、私は、異なるそれらを呼び出す必要があるいずれかpq1.*dijk
又はpq2.*dijk
(pq1
タイプPqueue1
等の目的です)。しかし、私は、あまり最適ではない、事前に両方の優先度のキューを構築しなければならないでしょう。
これはCとどのように関連していますか?タグをスパムしないでください!あなたの質問は広すぎます。私たちはコンサルティング/個人指導のサイトではありません。 – Olaf
共通の基本クラスから派生し、dijkstraメソッドを仮想化するには、両方のクラスが必要です。関数ポインタを含める必要はありません。 –
これはポリモーフィズムによって解決される典型的な問題です:http://www.cplusplus.com/doc/tutorial/polymorphism/ –