• ベストアンサー

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を記述すればいいでしょうか? 宜しくお願い致します。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.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 値がない場合 は、単に、関数の処理を終了する)もので、関 数の先頭に帰ることはありません。 呼び出し側で繰り返し呼び出しているのでない 限りは。

mami_try
質問者

お礼

ポイント付与が遅れてしまいましたが、 ありがとうございました! いただいたアドバイスをもとに、 理解し、問題の解決をすることができました。 ありがとうございました!

その他の回答 (1)

回答No.1

こんにちは。こう言う事でしょうか? 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)); }

mami_try
質問者

お礼

別の角度から、問題を解決しましたが、 とても参考になりましたです。 ありがとうございました!

関連するQ&A