###状況
下記のようにLooP()内でWatch()を呼び出して、その後mainでWatch()で算出した値を呼び出そうとしています。下記では、spaceという変数を用意してi==5の時のWatch()の値を保存できるようにすることで、For文の中でのWatch()の途中結果を取得しています。
質問題名にあるような目的は一応達成できているのですが、spaceのような保存先をいちいち用意してあげることは効率が良くない気がします。
spaceを使わずに、for文の中でループする関数のループ途中の計算結果(例えばmainでi==5の時のhoge.Watch())を直接取得できるような方法はないでしょうか。
C++
1#include <iostream> 2class Hoge { 3public : 4 int i; 5 int space; 6 int Watch(); 7 void Loop(); 8}; 9 10int main() 11{ 12 Hoge hoge; 13 hoge.Loop(); 14 std::cout << "Answer is " << hoge.space << std::endl; 15 return 0; 16} 17 18int Hoge::Watch() { 19 return i + i; 20} 21 22void Hoge::Loop() { 23 for (i = 0; i <= 10; i++) { 24 if (i == 5) { 25 space = Watch(); 26 } 27 } 28}
###備考
windows10
visual studio2019
回答4件
あなたの回答
tips
プレビュー