関数の戻りの型が void でない限り、関数は値を戻す必要があります。
戻り値は return ステートメントで 指定します。以下のコードは、return ステートメントを含む関数定義を示しています。
int add(int i, int j) { return i + j; // return statement }
以下のコードで示すように、関数 add() を呼び出すことができます。
int a = 10, b = 20; int answer = add(a, b); // answer is 30
この例では、return ステートメントは、戻された型の変数を初期化します。 変数 answer を int の値 30 で初期化しています。 戻された式の型を、戻りの型と照らし合わせて検査します。 必要に応じて、すべての標準型変換およびユーザー定義の型変換が適用されます。
関数が呼び出されるたびに、自動ストレージを持つその変数の新しいコピーが作成されます。 関数が終了した後に、これらの自動変数のストレージは再利用されることがあるので、 自動変数を指すポインターまたは参照は戻してはなりません。
クラス・オブジェクトが戻された場合、そのクラスに copy コンストラクター
またはデストラクターがあるときには、一時オブジェクトを作成することがあります。
関連参照