我想将我作为参数传递的变量更改为此函数:
bool verifyStudent(string id, string name, int grade, int points, string type) {
if(!verifyId(id)){
cerr << "Please enter 8 charactes id! format: YYMMDDCC\n";
cin >> id;
return false;
} else
if(!verifyName(name)){
cerr << "Please enter name to 35 characters!\n";
cin >> name;
return false;
} else
if(!verifyGrade(grade)){
cerr << "Please enter class between 8 and 12!\n";
cin >> grade;
return false;
} else
if(!verifyPoints(points)){
cerr << "Please enter points between 0 and 300!\n";
cin >> points;
return false;
} else
if(!verifyType(type)){
cerr << "Please enter 1 charater type! format: R,r - regional, D,d - district, N,n - national, I,i - international\n";
cin >> type;
return false;
} else {
return true;
}
}
我应该如何访问给定变量并在未被其他函数验证时更改它?
这是我调用函数的方式:
verifyStudent(iId, iName, iGrade, iPoints, iType);
答案 0 :(得分:8)
要更改参数,您必须使用引用:
bool verifyStudent(string& id, string& name, int& grade, int& points, string& type)
虽然我认为该功能不是 verifyStudent 和 verifyAndCorrectStudentIfNeeded 一样多。
答案 1 :(得分:2)
引用:
因此,C ++有两个参数传递机制,按值调用(如 在Java中)并通过引用调用。参数传递时 参考,该功能可以修改原件。通过引用打电话是 和&amp; amp;在参数类型后面。
这是一个利用引用调用的典型函数 [...]
void swap(int&amp; a,int&amp; b){[...]}