реклама на сайте
подробности

 
 
> Таблица виртуальных функций
Rusoil
сообщение Jun 1 2009, 13:17
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 47
Регистрация: 21-01-09
Пользователь №: 43 695



Есть базовый класс с виртуальными методами - class A.

CODE
class A
{
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, то таблицу компилятор сделал.
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 16th July 2025 - 09:40
Рейтинг@Mail.ru


Страница сгенерированна за 0.01358 секунд с 7
ELECTRONIX ©2004-2016