c++ - 从模板创建对象,类型由用户输入 c++

标签 c++ class templates object

我有一个模板类。我想让程序询问用户他想要什么类型,然后根据他选择的类型实例化一个对象。最好的方法是什么?像这样的东西,但它不起作用:

template <typename T> class Object {...};
cin >> type;
Object<type> newobject;

最佳答案

Polymorphism

它将根据用户输入使对象基于模板和动态:

class Base
{
public:
  virtual ~Base() {};
};

template <typename T>
class Type : public Base
{
    T type;
};

int main()
{
    int i;
    cin >> i;

    Base *b;

    switch (i)
    {
    case 0: b = new Type<float>(); break;
    case 1: b = new Type<int>(); break;
    case 2: b = new Type<char>(); break;
    }

    // ...

    delete b;
}

关于c++ - 从模板创建对象,类型由用户输入 c++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16080790/

相关文章:

c++ - FFMPEG:未定义对 `avcodec_register_all' 的引用未链接

c++ - 具有可变类型容器的类模板

c++ - 初始化模板化、递归、POD 结构

PHP - 无法执行 C++ 二进制文件?

c++ - ValidateUser 而不是 LogonUser?

python - 在Visual Studio的Windows上安装MPIR时遇到问题吗?

oop - 函数如何进入 Lua 中的表?

java - 切换到新的 Activity/应用页面时应用崩溃

c++ - 我一直收到 -2 作为我的更新工资

C++ 模板编译错误