我无法弄清楚我的通话参数!这些是我的原型:
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&);
答案 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 )
。当参数采用引用时,您无需编写任何其他内容,只需要编写要引用的变量。