Missing argument list C/C++ for class template 'deque'
template class 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() {
}
Error: missing parameter list of class template "deque" C/C++(441), int deque(d = 0)
reason: template class is a class with template parameters, it is required to add template class parameters after the class name in the interface implementation, The same goes for function return values
Revise:
template <typename T>
deque<T>::deque(T d = 0):data(d){
}
template <typename T>
deque<T>::~deque(){
}
function implementation
template <typename T>
bool deque<T>::empty();
Error: The function cannot be redeclared outside the class of the member function "deque::empty"
Reason: There are more semicolons and no curly braces, it is considered to be declared
Modification:
template <typename T>
bool deque<T>::empty(){
}
When there are two or more formal parameters in the template argument list
Realize a composite relationship, the above deque template class is Component part, the following is Container part: template class queue, its template actual parameter has two formal parameters
template <class T,class Sequence = deque<T>>
class queue
{
private:
Sequence c;
public:
queue();
~queue();
};
Function implementation:
template <class T,class Sequence>
queue<T,Sequence>::queue(){
}
template <class T,class Sequence>
queue<T,Sequence>::~queue(){
}