0

これは、.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 + " ";
}

も動作します。

誰かが私にこれを説明してくれませんか?文字列の基本的な知識が不足していますか?

ありがとう。

4

2 に答える 2

1
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 + " ");
}
于 2013-07-12T11:56:48.670 に答える