У меня есть этот код:Вызов функции вне функции
std::string* f()
{
cout << "1";
return new string("5");
}
std::string a = *f();
std::string b = a.append("2");
int main()
{
cout << b;
return 0;
}
Этот код работает и вернуть 152
Как это возможно? Если компилятор вычисляет значение своей возвращаемой строки во время компиляции, тогда как я вижу 1
при запуске кода? И если это выполняется во время выполнения, то я никогда не вызываю f() во время выполнения, поэтому я не должен видеть 1
в выводе.
Но я никогда не вызываю f() во время выполнения ... Как называется 'cout << 1' – Kam
Конечно, вы:' std :: string a = * f(); '. –
OK Я в замешательстве, да вызовы f(), но a.append («2») не делает, а b просто так – Kam