缺少 类模板 “deque“ 的参数列表和参数列表有两个或两个以上的形参

Posted 阿宝逃离地球

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了缺少 类模板 “deque“ 的参数列表和参数列表有两个或两个以上的形参相关的知识,希望对你有一定的参考价值。

缺少 类模板 “deque” 的参数列表C/C++

模板类deque

template <typename T>
class deque
{
private:
    T data;
public:
    deque(T d = 0):data(d);
    ~deque();
};

deque::deque(T d = 0):data(d){}
deque<T>::~deque() {}

报错:缺少 类模板 “deque” 的参数列表C/C++(441),int deque( d = 0)
原因:模板类是带模板参数的类,要求在接口实现中的类名称后面加入模板类参数,函数返回值亦如此

修改:

template <typename T>
deque<T>::deque(T d = 0):data(d){}

template <typename T>
deque<T>::~deque(){}

函数的实现

template <typename T>
bool deque<T>::empty();

报错:不能在成员函数 “deque::empty” 的类外部重新声明该函数
原因:多了分号,没有花括号,被认为是声明了
修改:

template <typename T>
bool deque<T>::empty(){}

当模板实参列表中有两个或两个以上的形参时

实现一个复合关系,上面的deque模板类为Component part,以下为Container part:模板类queue,其模板实参有两个形参

template <class T,class Sequence = deque<T>>
class queue
{
private:
    Sequence c;
public:
    queue();
    ~queue();
};

函数实现:

template <class T,class Sequence>
queue<T,Sequence>::queue(){}

template <class T,class Sequence>
queue<T,Sequence>::~queue(){}

以上是关于缺少 类模板 “deque“ 的参数列表和参数列表有两个或两个以上的形参的主要内容,如果未能解决你的问题,请参考以下文章

请C++高手指导 IntelliSense: 缺少 类模板 "std::iterator" 的参数列表 。如何添加类模板到集成环境

派生类中隐藏的基类模板成员函数,尽管参数列表不同

C++模板参数类型列表

将可变参数模板的参数分成不同的列表?

作为 Flutter 中另一个类的参数的类列表

C++ 为类模板提供初始化列表构造函数