CODE
class A
{
public:
virtual ~A() {}
// Виртуальные функции
virtual void Get_A() { }
virtual void Get_B() { }
....
protected:
}
{
public:
virtual ~A() {}
// Виртуальные функции
virtual void Get_A() { }
virtual void Get_B() { }
....
protected:
}
От него производный класс, в котором уже подробно расписываю виртуальные функции.
CODE
class B : public A
{
public:
B() { }
~B() { }
virtual void Get_A();
virtual void Get_B();
...
private:
}
Инициализирую через указатель и new.
A *pPointer;
pPointer = new B;
Далее работаю с указателем, описание класса A находиться в хедере. Для него виртуальные функции не расписаны, т.е. используется вроде шаблона.
При глобальной линковке ругается вот такой строкой:
Error[Li005]: no definition for "Virtual function table for A"
Почему не создалась эта таблица? Что не так сделал?
Нашел проблему. Два виртуальных метода возвращали значения, а все остальные были void. Когда просто вписал там return FALSE, то таблицу компилятор сделал.