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) 

関数はverifyAndCorrectStudentIfNeededほどverifyStudentではないと思いますが。

于 2012-06-10T21:59:29.290 に答える
2

引用:

したがって、C ++には、値による呼び出し(Javaの場合のように)と参照による呼び出しの2つのパラメーター受け渡しメカニズムがあります。パラメータが参照によって渡されると、関数は元のパラメータを変更できます。参照による呼び出しは、パラメータータイプの背後にある&によって示されます。

これは、参照による呼び出しを利用する典型的な関数です[...]

void swap(int&a、int&b){[...]}

詳細はこちら->A3.5。関数

于 2012-06-10T22:03:21.097 に答える