如何在c++中通过字符串类型名创建实例?
How can we create an instance in C++ by a string type name?
假设我们只有一个字符串
string typename = "int"
在c++中,不能具有仅来自string
(或字符数组)的类型。类型必须在编译时声明。
typename
是c++中的关键字,因此不能用作变量。这在c++中不直接支持。您可以使用Abstract Factory Pattern
(参见Wikipedia文章)并将类的名称映射到创建它的工厂。
在c++中不能直接这样做。
通常的方法是在一些工厂中注册所有可能的类型,这些工厂将在堆上创建数据。
相关文章:
- 当我使用自定义类型创建动态数组时,即使使用字符串,它似乎也不起作用
- 根据模板的基本类型创建不同的模板类
- c++ 使用 CRTP 为变量模板中的每个类型创建纯虚拟重载
- C++使用模板为基元类型创建别名?
- 如何为基类通用类型创建向量以使用具体类型元素
- 如何使用基本类型创建C++多维名称数组
- 如何为多个C++类型创建编译时检查
- 从左到右从所有类型创建嵌套包
- 在抽象类中,可以使用抽象类A的类型创建一个静态字段
- 是否可以为缺少的模板成员类型创建默认类型?
- 将"sizeof"应用于不完整的类型(创建的类)无效
- 如何在Swig中为非基元数据类型创建包装器
- 如何在C++中为类型列表中的每个类型创建一个元素并将其添加到向量中
- 如何在MPI中从结构类型创建新的派生数据类型
- "错误:需要类型"创建新实例
- 如何从字符串中存储的类型创建实例
- 如何在编译时从类型创建静态字符串
- 如何使用特定类型创建 NULL
- 从文本文件导入的不同线类型创建变量
- 如何在Visual Studio 2013中为函数类型创建类型别名