继承std :: vector时出错

时间:2015-04-01 08:53:43

标签: c++ inheritance vector

我试图从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类继承我的继承类的所有过程。

提前致谢。

1 个答案:

答案 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模式下运行编译器