我在头文件中的类(图形)中有一个函数(assign)。此功能的目的是打印2d矢量:
class Graph
{
public:
void printvec(vector< vector<double> >&PRRMap);
};
我从cpp文件中调用此函数,例如:
Graph G;
G.printvec(vector< vector<double> > &PRRmap);
我收到以下错误:
错误:
之前的预期primary-expression‘&’
令牌
我该如何解决这个问题?
答案 0 :(得分:4)
void printvec(vector< vector<double> >&PRRMap);
这是一份声明。它包含形式参数,每个参数都指定类型和可选名称。
G.printvec(a_map);
这是一个函数调用。它包括实际参数,每个参数都是一个表达式,即值。在函数调用期间未命名该类型。但是您需要指定要打印的矢量的名称。
根据函数声明中指定的形式参数类型检查实际参数表达式的类型。如果它们不匹配,编译器将寻找合适的转换,如果找不到,则会出现编译错误。
由于您的函数需要非const引用,因此此处不允许进行大多数转换。您应该使用要打印的数据指定合适的矢量矢量对象的名称。
答案 1 :(得分:3)
当您拨打该功能时,您不需要&amp;操作
仅变量(有效参考)