2011-06-03 204 views
0

我在頭文件中的類(圖)中有一個函數(分配)。該功能的目的是打印二維矢量:將2d矢量傳遞給函數C++

class Graph 
{ 
public: 
    void printvec(vector< vector<double> >&PRRMap); 
}; 

我調用此函數從CPP文件如:

Graph G; 
G.printvec(vector< vector<double> > &PRRmap); 

我收到以下錯誤:

error: expected primary-expression before ‘&’ token

我怎樣才能解決這個問題?

回答

4
void printvec(vector< vector<double> >&PRRMap); 

這是一個聲明。它包括正式參數,其中每個指定類型和一個可選名稱。

G.printvec(a_map); 

這是一個函數調用。它包括的實際參數,其中每一個都是一個表達式,也就是value。該類型在函數調用期間未被命名。但是您確實需要指定要打印的矢量的名稱。

的類型實際參數表達的抵抗在函數聲明中指定的正式參數類型檢查。如果它們不匹配,編譯器會尋找一個合適的轉換,如果它找不到,你會得到一個編譯錯誤。

由於你的函數需要一個非const引用,所以大多數轉換將不被允許在這裏。你應該指定一個合適的vector-of-vectors對象的名稱,這個對象是你準備打印數據的。

3

當你調用該函數,你不需要&操作

只有變量(一個有效的參考)