return ステートメント (C++)return Statement (C++)

関数の実行を終了し、呼び出し元の関数 (main 関数から制御を転送する場合はオペレーティング システム) に制御を返します。Terminates the execution of a function and returns control to the calling function (or to the operating system if you transfer control from the main function). 呼び出し直後の位置から、呼び出し元の関数で実行が再開します。Execution resumes in the calling function at the point immediately following the call.


return [expression];


expression 句は、存在する場合、初期化が実行されたときと同様に、関数宣言で指定された型に変換されます。The expression clause, if present, is converted to the type specified in the function declaration, as if an initialization were being performed. 式の型からの変換、返す関数の型は、一時オブジェクトを作成できます。Conversion from the type of the expression to the return type of the function can create temporary objects. 一時要素を作成する方法とタイミングの詳細については、次を参照してください。一時オブジェクトします。For more information about how and when temporaries are created, see Temporary Objects.

expression 句の値が呼び出し元の関数に返されます。The value of the expression clause is returned to the calling function. expression が省略されている場合、関数の戻り値は未定義です。If the expression is omitted, the return value of the function is undefined. コンス トラクターとデストラクター、および関数型のvoidで式を指定することはできません、返すステートメント。Constructors and destructors, and functions of type void,cannot specify an expression in the return statement. その他のすべての種類の関数で式を指定する必要があります、返すステートメント。Functions of all other types must specify an expression in the return statement.

コントロールのフローでは、関数定義の外側のブロックを終了すると、結果は同じになること場合、返す式ステートメントが実行されている必要があります。When the flow of control exits the block enclosing the function definition, the result is the same as it would be if a return statement without an expression had been executed. これは、値を返すように宣言された関数では無効です。This is invalid for functions that are declared as returning a value.

関数は、任意の数を持つことができます返すステートメント。A function can have any number of return statements.

次の例の式を使用して、返す最大規模の 2 つの整数を取得するステートメント。The following example uses an expression with a return statement to obtain the largest of two integers.


// return_statement2.cpp
#include <stdio.h>

int max ( int a, int b )
   return ( a > b ? a : b );

int main()
    int nOne = 5;
    int nTwo = 7;

    printf_s("\n%d is bigger\n", max( nOne, nTwo ));

関連項目See also

ジャンプ ステートメントJump Statements