【发布时间】:2013-05-30 18:49:53
【问题描述】:
我的一小部分代码有问题,我正在尝试使用模板和模板类的向量
一个朋友帮我写了下面的代码,让它进入编译状态,但我仍然不能很好地使用派生类,所以我完全迷路了,我无法克服这个小错误,我真的可以使用你的帮助
#include <iostream>
#include <vector>
class data_base
{
public:
data_base( std::string &_id );
std::string id;
};
template <typename T>
class data : public data_base
{
public:
data<T>( T &_data, std::string &_id );
T *data;
};
data_base::data_base( std::string &_id )
{
id = _id;
}
template <typename T>
data<T>::data( T &_data, std::string &_id )
{
data =& _data;
id = _id;
}
int main()
{
std::vector< data_base*> stuff;
return 0;
}
如何使用数据类并将其放入填充向量中,然后再访问它?
哦,如果有人知道关于使用基类/派生类的好教程,我真的可以使用它
提前致谢
【问题讨论】:
-
data_base似乎没什么用,因为它没有虚函数。您是否尝试重新实现boost::any? -
我正在使用此代码的一部分,在我的序列化代码中的旧版本中,我最近决定将其更改为与模板兼容,但我无法让它工作。有没有办法完全忽略基类/派生类并以任何可能的方式跳到一个模板化的类向量?