「2」と言うのが戻り値(return)になってます。b;}と、こんな感じになると思います。出力されるという事です。答えてくれない(戻り値がない)と何を出力したらいいのか解らない訳です。使ったらエラーが出る理由です。「ベルさんコレをあの方に渡してきて下さい」という状態です。渡せたらベルさんはどうしますか?渡せばそれで仕事は終わりです。渡せたから報告はしなくてもいい、そんな状態なので戻り値は書かなくても大丈夫です。渡せたかどうか報告してほしい、そんな時に戻り値が一役買ってくれます。SetAのような関数でも、処理が成功したかどうかを返り値で返すものもあります。いう一例になるのではないかなと思いました。今度は「ベルさんあの方から荷物を取ってきて下さい」という状態です。その荷物がどんなもの(型)なのか知る必要があります。鉛筆取ってきて欲しいのに、消しゴム取ってこられたらいや違うんですけど・・・ってなると思います。戻り値の型のみが異なります。」このエラーの意味です。戻り値の型が宣言と定義で違うという事になります。SetとGetを同時にやって意味があるのか?についてですが、「ベルさんコレをあの方に渡して、また返しに来て下さい」っていう状態です。渡したものを返されるのですから、その処理に一体何の意味があるのでしょうか。それだったら最初から渡す必要はなく、直接使えばいいと思います。書きましたが、難しく考えている感じがしたので自分なりにまとめてみた感じでした。ややこしいですが、頑張って下さい。);//setした値が戻ってくるだけ。