簡體   English   中英

沒有用於調用復制構造函數的匹配函數

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM