我有一个模拟程序,它以特定的顺序重复一组函数,然后根据这些函数输出一些计算结果。每个函数都会以某种方式改变一个模拟器对象,并且会获取可变数量的不同类型的参数。例如: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 2012-03-02 11:33:45
@JonBentley我想你会走很长的路。除了能够轻松嵌入lua支持之外,学习如何在您的应用程序中支持通用嵌入式脚本语言,可以为您未来的所有项目打开混合C++ /脚本编程的全新世界。 – stinky472 2012-03-02 11:36:39