C++ #includes和类型变量的设计问题
Design Issue for C++ #includes and Type Variables
我将尝试描述一下问题的上下文,然后是一些观察结果。 我没有具体问题;我只是在寻找建议,主要是。
我有许多.h文件,对应于用户的测试/演示。 每个.h文件定义一个对应于一个测试/演示的类。 应该注意的是,所有这些类都继承自一个公共基。
在我的主文件中,我需要 #include 所有这些 .h 文件并识别它们的每个类。 然后,对于 n 个类,将有 n 个按钮。 按下每个按钮时,都会创建它对应的类的新实例。 释放后,它会将其删除。 按钮不能存储自己的实例化;按下和释放时必须创建和删除它们;不能同时实例化不同类的两个实例,这一点势在必行。
这引发了一些问题(并澄清上下文(:
- 有关特定测试/演示的所有信息都应位于同一位置(即,测试的名称、测试的文件名和测试的类名都应位于代码的同一区域中(。 最好是同一行。 这只是一个好的设计。
- 该类的一个关键信息是其C++名称。 不幸的是,据我所知,这样的令牌只能写入实例化它的代码中(因此,例如,它不能存储在包含有关每个测试/演示的信息的结构中;我尝试了模板,但后来它是一个模板列表,其参数都不同(。
第 1 点和第 2 点使我做了以下形式的宏观表达:
#define TESTDEMO_DATA(MACRO)
MACRO("<name 1 here>",class1_symbol,"<filename 1 here>")
MACRO("<name 2 here>",class2_symbol,"<filename 2 here>")
MACRO("<name 3 here>",class3_symbol,"<filename 3 here>")
...
从这里,我可以非常简单地创建按钮(我使用TESTDEMO_DATA来生成将创建classn_symbol实例的函数,然后让每个按钮调用正确的按钮(。
但是现在我陷入了困境:我显然无法编写一个传递给TESTDEMO_DATA的宏,该宏将只 #include 文件名,正如我所希望的那样,因为这需要一个多通道预处理器。 我也不想单独写 #includes,因为这违反了第 1 点,尽管这是我目前能想到的最好的。
想法?
从脚本生成代码。
相关文章:
- 从模板创建通用打印函数,以打印基元数据类型变量的值
- 指针数据类型变量如何包含对象?
- 将 static_cast<int>(-15) 分配给静态常量字符类型变量
- 将内置类型变量传递给只有一个类类型参数的"+"运算符函数时自动类型转换的构造函数
- 如何为结构类型变量赋值
- 如何将字符类型变量附加到字符串中?
- 共享或私有 openmp 代码中的结构化类型变量
- 有没有办法在 c++ 中制作类型变量?
- 从其他类声明类类型变量会给出 C2143 错误(在"*"之前缺少";")
- 如何检查类中定义的枚举类型变量是否被分配给?
- 将子类实例保存在父类型变量中并通过父变量使用 Child 函数?
- 是否可以在没有结构的情况下创建新的类型变量?
- 为什么类型变量;不调用默认 CTR
- 如何使用CIN将输入整数值获取到char类型变量中
- 数组问题:变量周围的堆栈'arr'已损坏
- 如何为 char** 类型变量提供适当的值,以便将其分配给字符串变量
- 在C++标准中哪里说必须初始化 const 内置类型变量的定义
- 为什么可以将其他类型变量用作C 中常量参考参数参数的参数
- Eclipse CDT 打开声明的自动类型变量
- C++ #includes和类型变量的设计问题