3

我想更改作为参数传递给此函数的变量:

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);
4

2 回答 2

10

为了更改参数,您必须参考

bool verifyStudent(string& id, string& name, int& grade, int& points, string& type) 

尽管我会说该功能的verifyStudent不如verifyAndCorrectStudentIfNeeded多。

于 2012-06-10T21:59:29.290 回答
2

引用:

因此,C++ 有两种参数传递机制,按值调用(如在 Java 中)和按引用调用。当一个参数通过引用传递时,该函数可以修改原来的。引用调用由参数类型后面的 & 表示。

这是一个利用引用调用的典型函数 [...]

无效交换(int&a,int&b){ [...] }

更多在这里-> A3.5。功能

于 2012-06-10T22:03:21.097 回答