[英]No matching function for call to copy constructor
我有一個類Graph,其復制構造函數在Graph.h中聲明如下:
template<typename Object,typename Weight>
Graph<Object,Weight>::Graph(Graph<Object,Weight>& G)
在其他地方,我嘗試使用它:
Graph<double,double> G = make_graph("dense.g");
...但是它給了我以下錯誤:
time_trialsALIST.cpp:37: error: no matching function for call to `Graph::Graph(Graph)' Graph.h:142: note: candidates are: Graph::Graph(Graph&) [with Object = double, Weight = double]
我不明白為什么會這樣; make_graph函數只返回一個Graph:
Graph<double,double> make_graph(string filename){...}
在某個地方我需要一個'&'嗎?
在這里閱讀答案 。 換句話說,你錯過了一個const
,而不是一個&
。 做了:
template<typename Object,typename Weight>
Graph<Object,Weight>::Graph(const Graph<Object,Weight>& G)
您不能將臨時綁定到非const引用。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.