std :: string을 함수의 기본 인수로 전달하려고합니다. 내가 문자열의 기본 생성자는 문자열을 초기화합니다 들었std :: string, 문자열 val과 문자열의 차이 val = ""
void string_fun(int i, string val = "", int j = 10)
// void string_fun(int i, string val, int j = 10) // <-- error since no default value
{
cout << "values " << endl;
cout << "i: " << i << endl;
cout << "val: " << val << endl;
cout << "j: " << j << endl;
}
void ret_fun()
{
string fun;
cout << "values " << endl;
cout << "fun: " << fun << endl;
}
int main()
{
string_fun(3);
ret_fun();
return 0;
}
즉 그것의 값이됩니다 어떤 맞다면 나는
을 다음과 같은 노력하고있어? 함수에 대한 인수로 string val
만 사용한다면 여기를 참고하십시오. 컴파일 오류가 발생합니다. 하지만 모두 val
과 fun
문자열을 출력 할 때 같은 결과가 나옵니다. 내 질문은 무엇입니까 두 문자열을 그들의 값의 경우 다른, 이후 string val = ""
또한 빈 문자열을 만듭니다.
'string val = ""'대신'string val = {}'을 사용해보십시오. 전자는 기본 생성자를 사용하지만 후자는 암시 적 생성자를 사용하여'const char *'에서 문자열을 생성합니다. 전자가 더 효율적일 수 있습니다. 특히 _noexcept_으로 선언됩니다. – nosid