2011-03-13 7 views
1

C++에서 제네릭 클래스를 만들려고하지만 6, 16, 19 번째 줄에 '<'토큰 "이 오기 전에"예상 생성자, 소멸자 또는 형식 변환 오류가 발생합니다 ...C++ 구현 일반 클래스

나는 간단한 수업을 만들고 있으며 거기에서 계속 진행할 수 있다고 확신한다. 다음은 다루는 샘플 코드입니다.

using namespace std; 

//line 6 
generic < class T> 
class Table 
{ 
friend class Table; 
     Table< T> *LT; 
     LT_Node* cursor; 

public: 
     Table();  
     ~Table(); 
     Table(const Table & source); 
     Table& operator =(const Table& rhs); 
}; 

//line 16 
generic < class T> 
Table< T>::Table(){} 

//line 19 
generic < class T> 
Table< T>::~Table(){} 

generic < class T> 
Table< T>::Table(const Table & source){} 

generic < class T> 
Table::Table& operator =(const Table& rhs){} 

미리 감사드립니다.

+2

왜이 '일반 단어'를 사용하고 있습니까? 이게 효과가 있다고 생각하는 이유는 무엇입니까? –

+0

C++ 템플릿을 '제네릭 클래스'로 생각하면 자신이 가진 엄청난 힘을 무시할 수 있습니다. 물론, 그 힘은 복잡해 지므로 그것을 무시하고 싶을지도 모릅니다. :-) 그리고 @James McNellis와 마찬가지로, 왜 '템플릿'대신 '제네릭'이라는 단어를 사용해야한다고 생각하는지 궁금합니다. 당신은 어딘가에있는 어떤 예에서 그것을 보았습니까? – Omnifarious

답변

3

일반적인 C++ 인 경우 키워드는 generic이 아니라 template입니다. 나중에 사용할 때 클래스 또는 함수에 대한 템플릿을 정의하고 있습니다.

+0

나는 본다. 제네릭을 구현하는 학교 실험실을하고 있기 때문에 제네릭 키워드가있을 수 있다고 생각 했으므로이 키워드를 사용하고 싶습니다. 그렇지 않다면 템플릿이 작동하고 있지만 여기에 다른 오류가 발생하는 것 같습니다. 표 :: 표 & 연산자 = (const 표 & rhs) {} – ChefProgrammer

+0

여기 테이블 :: 표 &를 씁니다. 당신은 당신의 코드에 있습니다. –

+0

글쎄, 그 이상 ** 테이블 :: 테이블 (const 테이블 & 소스) {} ** 및 ** 작동하지만 작동하는 것 같지만 ** 난 줄을 오류가 발생했습니다. 테이블 :: Table & operator = (const 테이블 & rhs) {} **에 이전과 같은 오류가 있습니다. – ChefProgrammer