c ++改变函数的变量参数

时间:2012-06-10 21:57:41

标签: c++ function variables arguments

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

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

2 个答案:

答案 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){[...]}

More here -> A3.5. Functions