我试图从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类继承我的继承类的所有过程。
提前致谢。
答案 0 :(得分:1)
我试过了:
#include <vector>
template<class t>
class Vector: std::vector<t>
{
public:
using std::vector<t>::vector;
};
int main()
{
Vector<int> v;
return 0;
}
并且在传递标记gcc 4.8.
时,它在-std=c++11
上正常工作。
听起来你的编译器无法弄清楚你想用using
指令完成什么。由于继承构造函数是C ++ 11的一个特性,我建议你确保在C ++ 11模式下运行编译器。