我正在设计一个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 …