Ubuntu 11.04의 Netbeans 7.1에서 C++을 개발 중입니다. 왜 누군가가 Stack fs (5)를 말할 수 있는지 궁금 해서요. Stack :: Stack (int)에 대한 정의되지 않은 참조로 간주됩니다. T에 사용 된 부유물을 가진 클래스로 보이지 않는 이유는 무엇입니까?우분투의 Netbeans; C++; 정의 된 템플릿 "undefined"
#include <iostream>
using namespace std ;
template <class T>
class Stack
{
public:
Stack(int = 10) ;
~Stack() { delete [] stackPtr ; }
int method1(const T&);
int method2(T&) ;
int method3()const { return top == -1 ; }
int method4() const { return top == size - 1 ; }
private:
int attribute1 ;
int attribute2 ;
T* stackPtr ;
} ;
using namespace std;
int main()
{
// This line gives the error message "undefined reference to `Stack<float>::Stack(int)'"
Stack<float> fs(5);
return 0;
}
감사합니다. 피터.
사라 int입니다 그리고 당신이 정말로 말을 않았다 'namespace std;를 사용하는 것 ** ** 두 번 **, 당신이 끔찍하고 끔찍한 말을하는 것을 신경 쓰지 않는다는 것을 보여주기 위해서? –
@KerrekSB,'네임 스페이스 표준 사용하기 ' 라이브러리 헤더 안에 (따라서 다른 사람들에게도 강제로) 사용하면 문제가되지 않습니다. – Shahbaz