【发布时间】:2012-05-23 11:44:30
【问题描述】:
我正在使用实现一组系统测试的抽象基类。简而言之,类声明是:
class Test_Class
{
Test_Class();
~Test_Class();
Run_Test(void * param_set = NULL) = 0;
}
基类需要实现 Run_Test 函数,该函数允许用户将任意数据结构作为 void 指针传递,并将其转换为子类中 Run_Test 主体内的适当类型,以允许不同的测试使用不同的数据结构,例如一个测试中的浮点数与另一个测试中的整数列表。
这很麻烦,而且看起来像是一种难以置信的类似 C 的做事方式。有没有更好的方法来使用继承或其他语言实用程序?
注意:由于客户限制,不允许此程序访问 STL 或 Boost 库。
【问题讨论】:
-
boost::any正是为此类任务而设计的。 -
同意 boost::any,不幸的是,boost 库和 STL 在我们的项目中都不可用。更新了问题以反映这一事实。
-
@DeadMG 嵌入式系统级芯片客户呢?我的客户甚至不允许我使用 c++
-
事实上,这是针对嵌入式系统的。谢谢大家的帮助。
标签: c++ parameter-passing void-pointers