C++ 运行chandy mishra haas算法时出现语义错误
我编写了一个C++ 运行chandy mishra haas算法时出现语义错误,c++,C++,我编写了一个C++程序,在eclipseforcdt(C/C++)中实现ChandyHaasMishra算法或模型 #包括 #包括 #包括 #包括 #包括 使用名称空间std; void engage_查询(向量图、int init、int dest); 无效显示图(矢量图); 无效回复查询(向量图,int init,int dest); int no_的_过程; 向量等待; 向量msg_计数; int no_of_死锁=0; int nou of_结=0; bool死锁_标志=0; int m
C++
程序,在eclipseforcdt(C/C++)
中实现ChandyHaasMishra
算法或模型
#包括
#包括
#包括
#包括
#包括
使用名称空间std;
void engage_查询(向量图、int init、int dest);
无效显示图(矢量图);
无效回复查询(向量图,int init,int dest);
int no_的_过程;
向量等待;
向量msg_计数;
int no_of_死锁=0;
int nou of_结=0;
bool死锁_标志=0;
int main(){
int-probe_-pid;
int站点=0;
cout站点;
对于(int i=0;i cout问题在于转发声明与实际函数定义不匹配:
void reply_query(vector<vector<int> > graph, int init, int dest);
...
void reply_query(vector<std::vector<int> > &graph, int init, int dest)
void-reply\u查询(向量图、int-init、int-dest);
...
无效回复查询(向量和图形、int init、int dest)
它使编译器认为有两个不同的重载,当您调用reply\u query()
时,这两个重载都是可行的候选重载,因此它无法决定使用哪一个
最简单的解决方案是尽可能避免转发声明,方法是对函数重新排序,使reply\u query()
位于main()
之前。问题是转发声明与实际函数定义不匹配:
void reply_query(vector<vector<int> > graph, int init, int dest);
...
void reply_query(vector<std::vector<int> > &graph, int init, int dest)
void-reply\u查询(向量图、int-init、int-dest);
...
无效回复查询(向量和图形、int init、int dest)
它使编译器认为有两个不同的重载,当您调用reply\u query()
时,这两个重载都是可行的候选重载,因此它无法决定使用哪一个
最简单的解决方案是尽可能避免转发声明,方法是对函数重新排序,使reply\u query()
位于main()
之前。哦…我没有考虑那些转发声明。谢谢你…哦…我没有考虑那些转发声明。谢谢你。。。