C++ 클래스의 템프리트 사용

simpid의 이미지

C++에서 평소 잘 안쓰던 템플리트를 사용하려는데 뭐가 잘 안되서 질문 드립니다.

template <typename T>
clas base
{
base(void)
~base(void)
};

template <typename T>
base<T>::base(void)
{
}

template <typename T>
base<T>::~base(void)
{
}

class derived : public base<int>
{
};

잘 되야 할것 같은데..
링크에러가 발생합니다.

derived 클래스의 생성자와 소멸자에서 base의 생성자와 소멸자를 찾을 수 없다는 링크 에러가 나오는군요.

컴파일 된거 보면 문법적으로는 괜찮은것 같은데...
뭐가 문제인지...

컴파일러는 Visual Studio.NET 2003 입니다.

답변 부탁드립니다.

doldori의 이미지

base 클래스의 코드가 헤더와 소스 파일로 나뉘어져 있나요? 그렇다면 base의
멤버 함수가 정의된 소스 파일이 #include 되었는지 확인해 보세요.

ps 1. "clas", ";"가 빠져 있는 것 등은 코드를 올리기 전에 먼저 점검을 하셨었으면
좋았겠습니다.

ps 2. C++에서 인자가 없는 함수는 일반적으로 f(void)보다는 f()으로 나타냅니다.

simpid의 이미지

doldori wrote:
base 클래스의 코드가 헤더와 소스 파일로 나뉘어져 있나요? 그렇다면 base의
멤버 함수가 정의된 소스 파일이 #include 되었는지 확인해 보세요.

ps 1. "clas", ";"가 빠져 있는 것 등은 코드를 올리기 전에 먼저 점검을 하셨었으면
좋았겠습니다.

ps 2. C++에서 인자가 없는 함수는 일반적으로 f(void)보다는 f()으로 나타냅니다.

#include 는 되어 있습니다.
그렇기에 컴파일은 됐던거죠.

소스코드를 브라우저에서 바로 대충 짜다 보니까.. 세미콜론 같은 실수 있었습니다. ^^;

어째튼.. 아직 해결은 못하고 있습니다.
게시판에 올렸던 내용을 컴파일 해 보니까..
g++, vc 둘다 잘 됩니다.

제 원본 코드에 뭔가 실수한게 있는듯 합니다.

방금 점심먹고 있으니까.. 찾아봐야죠..

답변 감사합니다.

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.