缺少 类模板 “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(){
    
    }

猜你喜欢

转载自blog.csdn.net/weixin_44848852/article/details/120444654
今日推荐