相关疑难解决方法(0)

如何在C++中获取运行时给定元素的模板类型?

我正在设计一个Array能够容纳任何类型对象的简单类,比如可以在一个对象中保存多种类型数据的向量.(这是出于学习目的.)

我有一个名为的空基类Container:

class Container {};
Run Code Online (Sandbox Code Playgroud)

一个模板化的子类称为Object:

template <class T>
class Object : public Container {
    T& object;
public:
    Object(T& obj = nullptr) : object(obj) {}
};
Run Code Online (Sandbox Code Playgroud)

我有一个Array类,其中包含一个vector指向Containers 的指针,用于保存Objects:

class Array {
    std::vector<Container *> vec;
public:
    template <class T>
    void add_element(const T&);
    auto get_element(int);
};
Run Code Online (Sandbox Code Playgroud)

add_element将元素存储到Objects中并将它们放入vec:

template <class T>
void Array::add_element(const T& element)
{
    vec.push_back(new Object<T>(element));
}
Run Code Online (Sandbox Code Playgroud)

get_element从中移除元素Object并将其传递回调用者.这就是我的问题所在.为了从中删除元素Object …

c++ polymorphism templates

6
推荐指数
1
解决办法
1127
查看次数

标签 统计

c++ ×1

polymorphism ×1

templates ×1