【发布时间】:2015-04-01 08:53:42
【问题描述】:
我正在尝试定义一个从 std::vector 类继承的类。下面是代码
template<class t>
class Vector:vector<t>
{
public:
using vector<t>::vector;
};
int main(int argc, char *argv[])
{
Vector<int> v;
return 0;
}
我收到这样的错误:
"error: 'std::vector<t, std::allocator<_CharT> >::vector' names constructor"
所以基本上我想知道为什么我的程序失败了,以及从父 std::vector 类继承的类中要重载的所有程序。
提前致谢。
【问题讨论】:
-
从
std::vector继承时,请注意它不必定义虚拟析构函数。因此,从它继承通常不是一个好主意。 -
@Bathsheba 这是私有继承,所以我怀疑缺少虚拟析构函数是否重要。
-
@KeillRandor public 在这里不相关。
-
@tobi303 大概你的意思是虚拟析构函数?没有虚拟构造函数这样的东西。
-
@tobi303 有些人认为私有继承是组合。
标签: c++ inheritance vector