Iは特定の順序で多数回関数のセットを繰り返し、それらの機能に基づいていくつかの計算結果を出力するシミュレーションプログラムを有しています。各関数は何らかの方法でSimulatorオブジェクトを変更し、異なるタイプの引数を可変数使用します。たとえば:C++プログラムがユーザ定義のスクリプトに従う最も良い方法は?
class Simulator
{
Simulator();
void A(int x, double y, string z);
void B(int x, int y);
void C(double x);
};
私は、ユーザーがこれらの機能を引数としてだけでなく呼び出される順序を指定できるようにしたい、と私は、スクリプトのいくつかの並べ替えのためにこの情報を保存できるようにする必要があります続くプログラム。たとえば、スクリプトがプログラムの次のアクションに変換される可能性があります。
Simulator mySim;
mySim.A(5, 6.0, "a string");
mySim.B(1, 1);
mySim.A(3, 4.0, "another string");
mySim.C(10.0);
効率的な方法はありますか?私の最初の考えは、それぞれが関数の名前と引数を格納しているオブジェクトのリンクされたリストを持つことです。プログラムはリストをトラバースし、各関数を順番に呼び出します。しかし、これは問題のカップルを提起:
(a)の方法(量が異なるだけでなく、タイプの両方)機能ごとに異なるものとなるリスト内の引数を格納します。
(b)の私のプログラムを呼び出すために機能するかを決定するために、シミュレーションの実行ごとにif文のシリーズを実行する必要がありますよう、むしろ非効率です。
誰もが何か提案がありますか?
ありがとうございました。私は非常に簡単なスクリプトを実装することしか考えていないので、LUAを見ていきます。 – JBentley
@JonBentley私はあなたが遠くに行くと思う。 Luaサポートを簡単に組み込むことができるだけでなく、アプリケーションで汎用の組み込みスクリプト言語をサポートする方法を学ぶことで、今後のすべてのプロジェクトで、全く新しいC++ /スクリプトプログラミングの世界を開くことができます。 – stinky472