- ベストアンサー
returnの使い方に関して
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ virtual void put(key_type key, value_type val) { // B地点 ・ ・ } virtual cp::ft<value_type> get(key_type key) { // A地点 ・ ・ /*keyに対応するvalが取得される*/ return 0; //取得したkeyとvalをputの引数として代入するためputへ移動したい。 } ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 基本的な事かもしれませんが教えてください。 C++で上記内容のソースを作っています。 A地点でgetを行う際、 上記内容ですと、 returnの部分に差し掛かると、 再度、getの先頭に戻りますが、 「get」の一番最後でreturnまできたとき、 「get」の先頭(A地点)ではなく、 その更に1つ上の「put(B地点)」に戻って、 移動したその際に、 getオブジェクトで取得済みのkeyとvalをputで挿入するには、 どうreturnを記述すればいいでしょうか? 宜しくお願い致します。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
まず、get() が、その値として、value を 返すのであれば、 virtual cp::ft<value_type> get(key_type key) { ・ ・ /*keyに対応するvalが取得される*/ return value; // value を関数の値として返す } になりまね。 この結果を put() するのであれば、put() を 呼び出すべきところで、 put(key, get(key)); と記述することになります。 return は、関数の値を返す(or 値がない場合 は、単に、関数の処理を終了する)もので、関 数の先頭に帰ることはありません。 呼び出し側で繰り返し呼び出しているのでない 限りは。
その他の回答 (1)
- machongola
- ベストアンサー率60% (434/720)
こんにちは。こう言う事でしょうか? virtual cp::ft<value_type> get(key_type key) { // A地点 ・ ・ /*keyに対応するvalが取得される*/ this->put(key, value);//取得したkeyとvalをputの引数として代入するためputへ移動したい。 return cp::ft<value_type>(value_type(key, value)); }
お礼
別の角度から、問題を解決しましたが、 とても参考になりましたです。 ありがとうございました!
お礼
ポイント付与が遅れてしまいましたが、 ありがとうございました! いただいたアドバイスをもとに、 理解し、問題の解決をすることができました。 ありがとうございました!