저는 템플릿 개념에 새로운 것이 있습니다. 내가 놓친 게 있니? 내가 함수 getNewNode의 주석과 getNewNode 함수에 대응하는 문을 칭찬 할 때 예상대로 제 기능 getNewNode가 작동하지 않는 이유는클래스 본문 외부에있는 멤버 함수 정의가 오류가 발생합니다.
#ifndef STACK_H
#define STACK_H
template < class T>
class Stack{
private:
struct node {
T data;
node* next;
};
node * top;
//node* getNewNode(T num);
};
//template <class T>
//(node*)Stack<T> :: getNewNode(T num){
// node * temp = new node;
// temp->data = num;
// temp->next = NULL;
// return temp;
// }
#endif
는, 컴파일러는 같은 오류를 제공합니다. 나는 어디로 잘못 갔는가?
Error 7 error C2470: 'Stack<T>::getNewNode' : looks like a function
definition, but there is no parameter list; skipping apparent
body c:\users\nitinjose\documents\visual studio
2010\projects\templatequeue\templatequeue\stack.h 26 1 TemplateQueue
Error 2 error C4430: missing type specifier - int assumed. Note: C++
does not support default-int c:\users\nitinjose\documents\visual
studio
2010\projects\templatequeue\templatequeue\stack.h 26 1 TemplateQueue
Error 5 error C2146: syntax error : missing ')' before identifier
'num' c:\users\nitinjose\documents\visual studio
2010\projects\templatequeue\templatequeue\stack.h 26 1 TemplateQueue
템플릿 함수의 반환 유형은 일반적인 C++과 다르지 않습니다. (node *) getnode (int num) 함수를 사용하면 컴파일러가 템플릿을 사용하는 것처럼 바클 럽니다. Troubadour는 절대적으로 정확합니다. 그의 대답. – johnathon