C ++ Noob函数无法找出调用的参数?

时间:2011-11-07 22:39:35

标签: c++

我无法弄清楚我的通话参数!这些是我的原型:

void printIdInfo(ofstream &, string , string , const string, string, const string);
void getreadExpression(ifstream &fin, double &operand1, char &oper, double &operand2);
void echoExpression (ofstream &fout, double &, char &, double &);

这些是我的定义,低于主要...

void getprintIdInfo (ofstream &fout, string &first_name, string &last_name, const string CLASS, string lecture_section, const string DUE_DATE) {
  fout << first_name << " " << last_name << endl
       << CLASS << lecture_section << endl << DUE_DATE << endl;
}

void readExpression (ifstream &fin, double &operand1, char &oper, double &operand2) {
  fin >> operand1 >> oper >> operand2;
}

void echoExpression (ofstream &fout, double & operand1, char &oper, double &operand2) {
  fout << operand1 << " " << oper << " " << operand2;
}

这些是我的电话,但他们并没有工作我的所有参数都没有意义,但我不知道如何纠正它。提前致谢。

printIdInfo(ostream & out, first_name&, last_name&, lecture_section&);
getreadExpression(fin&, operand1&, oper&, operand2&);
echoExpression(fout&, operand1&, oper&, operand2&);

2 个答案:

答案 0 :(得分:3)

当您拨打电话时,请勿使用&符号。在原型中已经确定它是对变量的引用。在通话中使用&符时,您正在执行二进制AND操作。

答案 1 :(得分:1)

  getprintIdInfo (out, first_name, last_name, lecture_section);
  getreadExpression (fin, operand1, oper, operand2);
  getechoExpression (fout, operand1, oper, operand2);

你的第一个电话是可能试图声明一个ostream引用并将其作为参数使用,我不知道你是否正在尝试这样做。其他人不需要&后缀。实际上,标识符之后的&后缀甚至不是合法语法。当你有一个带有指针的参数时,你可以使用address-of运算符来获取它getInfo( &out )。当参数采用引用时,您无需编写任何其他内容,只需要编写要引用的变量。