Это функция, которую я имею в .h файле:
static std::string ReturnString(std::string some_string)
return ("\t<" + some_string + " ");
Компилятор (g ++ -std = c ++ 0x -pedantic -Wall -Wextra) выдает следующие ошибки:
error:expected identifier before '(' token
error:named return values are no longer supported
error:expected '{' at end of input
warning: no return statement in function returning non-void [-Wreturn-type]
Но,
static std::string ReturnString(std::string some_string)
{
return ("\t<" + some_string + " ");
}
работает отлично.
Четное,
static std::string ReturnString(std::string some_string)
{
return "\t<" + some_string + " ";
}
тоже работает
Может кто-нибудь, пожалуйста, объясните мне это, пожалуйста? Мне не хватает базовых знаний о строках?
Благодарю.
static std::string ReturnString(std::string some_string)
return ("\t<" + some_string + " ");
Это на самом деле базовые знания C ++, которые вам не хватает. В C ++ тела функций должны быть заключены в фигурные скобки, {}
, Итак, правильное определение для функции выше:
static std::string ReturnString(std::string some_string)
{
return ("\t<" + some_string + " ");
}
Это не имеет ничего общего со строками. Это о том, как вы определили свою функцию. В этом случае, ReturnString
это функция, которая возвращает строку
Общий формат определения функции C ++:
ReturnType NameOfTheFunction(Parameters)
{
Implementation
}