#c
#c
Вопрос:
Я не могу определить параметры моего вызова! Это мои прототипы:
void printIdInfo(ofstream amp;, string , string , const string, string, const string);
void getreadExpression(ifstream amp;fin, double amp;operand1, char amp;oper, double amp;operand2);
void echoExpression (ofstream amp;fout, double amp;, char amp;, double amp;);
Это мои определения, которые идут ниже main…
void getprintIdInfo (ofstream amp;fout, string amp;first_name, string amp;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 amp;fin, double amp;operand1, char amp;oper, double amp;operand2) {
fin >> operand1 >> oper >> operand2;
}
void echoExpression (ofstream amp;fout, double amp; operand1, char amp;oper, double amp;operand2) {
fout << operand1 << " " << oper << " " << operand2;
}
И это мои вызовы, но они вообще не работают, мои параметры не имеют смысла, но я не знаю, как это исправить. заранее спасибо.
printIdInfo(ostream amp; out, first_nameamp;, last_nameamp;, lecture_sectionamp;);
getreadExpression(finamp;, operand1amp;, operamp;, operand2amp;);
echoExpression(foutamp;, operand1amp;, operamp;, operand2amp;);
Комментарии:
1. Уберите
amp;
из ваших вызовов.2. Что означает «не работает»? Имена ваших функций не совпадают во всех опубликованных вами фрагментах.
3. я сожалею, что в имени printidinfo и echoexpression не должно было быть get, я переделал это
Ответ №1:
При выполнении вызова не используйте амперсанд. В прототипе уже определено, что это ссылка на переменную. Когда вы используете амперсанд в своем вызове, вы выполняете двоичную операцию AND .
Ответ №2:
getprintIdInfo (out, first_name, last_name, lecture_section);
getreadExpression (fin, operand1, oper, operand2);
getechoExpression (fout, operand1, oper, operand2);
Ваш первый вызов, возможно, пытается объявить ostream
ссылку и использовать ее в качестве аргумента, я не знаю, что вы пытаетесь там сделать. Остальным amp;
суффикс не нужен. На самом деле, amp;
суффикс после идентификатора даже не является допустимым синтаксисом. Когда у вас есть аргумент, который принимает указатель, вы можете использовать оператор address-of для его получения getInfo( amp;out )
. Когда аргумент принимает ссылку, вам не нужно писать ничего дополнительного, кроме переменной, на которую нужно ссылаться.