このような趣旨のプログラムを
#include <iostream> float a; void set_a(float x) { a = x; } float add(float x) { return x + a; } float sub(float x) { return x - a; } float (*process)(float); void mode_set(int mode) { switch (mode) { case 0: { process = add; break; } case 1: { process = sub; break; } } } int main() { set_a(2); mode_set(0); std::cout << process(5) << std::endl; return 0; }
このように全てstructに入れて実行したいのですが、この問題一つに30時間かけても私には解くことができませんでした…
#include <iostream> struct test { float a; void set_a(float x) { a = x; } float add(float x) { return x + a; } float sub(float x) { return x - a; } float (*process)(float); void mode_set(int mode) { switch (mode) { case 0: { process = add; break; } case 1: { process = sub; break; } } } }; int main() { test w; w.set_a(2); w.mode_set(0); std::cout << w.process(5) << std::endl; return 0; }
float aさえなければこのように書くことで実行できるようになるのですが、ここにfloat aを追加しようとするとどう書いてもエラーが発生して追加できません…。
#include <iostream> struct test { static float add(float x) { return x + 2; } static float sub(float x) { return x - 2; } float (*process)(float); void mode_set(int mode) { switch (mode) { case 0: { process = add; break; } case 1: { process = sub; break; } } } }; int main() { test w; w.mode_set(0); std::cout << w.process(5) << std::endl; return 0; }
誰か助けてください……
回答1件
あなたの回答
tips
プレビュー
下記のような回答は推奨されていません。
このような回答には修正を依頼しましょう。
また依頼した内容が修正された場合は、修正依頼を取り消すようにしましょう。
2023/05/02 17:41
2023/05/03 02:09
2023/05/03 17:40