클래스 템플릿 '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(){
}
템플릿 인수 목록에 형식 매개변수가 둘 이상 있는 경우
위의 데크 템플릿 클래스는 구성 요소 부분이고 다음은 컨테이너 부분입니다. 템플릿 클래스 대기열, 템플릿 실제 매개 변수에는 두 개의 공식 매개 변수가 있습니다.
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(){
}