![]() |
1
2
Boost.Any . 然后,您可以将您的any解释为A或B:
|
![]() |
2
1
你不能消除
并将其用作:
|
![]() |
3
1
正如其他人所说,不能使用模板(模板是在编译时计算的,但您的角色id是在运行时计算的)。 Instantiate objects from a String holding their class name 我建议你保持简单。如果一个普通的开关可以做到这一点,保持这种方式。如果您以后真的需要扩展它,您仍然可以引入一些字符ID的自动查找等等。 |
![]() |
4
1
使用模板或任何东西都无法做到这一点;C++没有反射。RTTI可能会有所帮助,但您不能在运行时根据类的名称创建类的实例(就像您在.NET或Java反射中所做的那样)。
但是,可以使用宏使这一点更简单。假设您不希望只使用单个字符的类名(如示例中所示),则不能使用
|
![]() |
5
0
您可以有一个数据结构(例如字典或成对数组),将字符串ID映射到构造类的静态函数。比如:
|
![]() |
AstralHex · 矩阵乘法代码工作不正常 4 月前 |
![]() |
Fishie · 作为类成员的智能指针是否仍然自动释放?[关闭] 4 月前 |
![]() |
Die4Toast · 递归调用成员箭头运算符-> 4 月前 |
![]() |
Anka Hanım · 关于结构和动态数组地址的问题 4 月前 |