私はここに直面しています問題を理解することはできません。に「グラフ<int> *」から引数1のために知られていない変換「グラフ<int>&」
class Dijkstra {
public:
Dijkstra(Graph<T> &graph, bool verbose = false)
:m_graph(graph), m_verbose(verbose){ }
[ .. ]
}
Graph<int> *custom = Graph<int>::custom((int *) &nodes[0], 4, 5);
Dijkstra<int> spt(custom, true);
は、参照を取ってダイクストラのコンストラクタではなく、もしそうなら、なぜコンパイラが不平を言うのですか?
graph.cpp:222:37: error: no matching function for call to ‘Dijkstra<int>::Dijkstra(Graph<int>*&, bool)’
Dijkstra<int> spt(custom, true);
^
graph.cpp:222:37: note: candidates are:
graph.cpp:128:3: note: Dijkstra<T>::Dijkstra(Graph<T>&, bool) [with T = int]
Dijkstra(Graph<T> &graph, bool verbose = false)
^
graph.cpp:128:3: note: no known conversion for argument 1 from ‘Graph<int>*’ to ‘Graph<int>&’
graph.cpp:7::126注意:ダイクストラ::ダイクストラ(constのダイクストラ&) クラスダイクストラ{
私は、それは間違ったことのすべてを取得しています感じています。
はい、コンストラクタでは* reference *が必要です。しかしあなたは*ポインタ*を渡しています。あなたはポインタと参照が全く別の2つのものであることを知っていますか? – AnT
私はこの人が大好きなので、言葉の川で自分自身を説明しようとしています。とにかく、いいえ、私はそうでなければ、私は尋ねていないでしょう... – pedr0
@ pedr0 _rivers_は絶えず変化しています;)。 SOで尋ねることによって、プログラミング言語の基礎を習得しないでください。 –