Ошибка компилятора при работе с шаблонами классов
От: Ami19  
Дата: 08.01.03 08:08
Оценка:
При работе над шаблоном класса я где-то допустил ошибку.
Работаю я на С++Builder 6.0.
Ткже установлен Microsoft Visual C++ 6.0
Под системой Windows98 osr/2.
Установлен Microsoft Office 2000.
Service Pack-ов не ставил.
Вот примерный код, который я набрал чтобы
проверить где у меня возникла ошибка, но она всё равно возникла:
Ошибка :
"[Linker Error]Unresolved 'Cefr<float>::ger()' referenced from C:\Nuk\main.obj"

файл Cerf.h:
template<class T>
class Cefr{
public :
       void ger();

};

Файл Cerf.cpp:
template<class T>
void Cefr<T>::ger(){
  int f;
  f=15;
}

Файл Main.cpp:
#include <vcl.h>
#pragma hdrstop

#include "Unit1.h"
#include "Cefr.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
}
//---------------------------------------------------------------------------


void __fastcall TForm1::Button1Click(TObject *Sender)
{
  Cefr<float> *dert = new Cefr<float>;
  dert->ger();
}

Ошибка возникает тогда, когда добавляешь вот эту
строчку :
  dert->ger();

Если её не добавлять, то всё скомпилится нормально.
Сам шаблон класса компилируется нормально.
Ошибка возникает при вызове любой процедуры или функции этого класса.
То есть, у меня получилось содать класс, а вот воспользоваться я им не могу.

Пожалуйста, укажите что мне сделать, чтобы её убрать.
Помогите как можно быстрее.

вставлена подсветка синтаксиса. _MM_
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.