![]() |
Модераторы: bsa |
![]() ![]() ![]() |
|
Bugmaker |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 161 Регистрация: 27.6.2008 Репутация: нет Всего: нет |
Здравствуйте.
Есть следующий код. Это часть примера из книги "С++ за 21 день".
Среда разработки Devc++, выдает ошибки: [Linker error] undefined reference to `vtable for InternalNode' [Linker error] undefined reference to `vtable for InternalNode' ld returned 1 exit status Насколько я понимаю, какой-то косяк при создании объекта конструктором - InternalNode(Data * theData, Node * next); Не могу понять где я опечатался, или в чем ошибка. |
|||
|
||||
bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 85 Всего: 196 |
Bugmaker, ты объявил метод Insert у InternalNode, но забыл его определить. А так как он виртуальный, то и возникла такая ошибка.
|
|||
|
||||
Bugmaker |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 161 Регистрация: 27.6.2008 Репутация: нет Всего: нет |
Вот я растыка... Просто в процессе написания программы, выработалась привычка почаще запускать компиляцию и исправлять ошибки, чтобы в конце было проще разобраться. Спасибо.
|
|||
|
||||
djamshud |
|
|||
![]() Пердупержденный ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1655 Регистрация: 23.11.2009 Репутация: 4 Всего: 39 |
Bugmaker, у меня тоже была такая привычка. Без нее лучше, отвыкайте:). Написал - скомпилировал - исправил - скомпилировал - запустил. И все.
-------------------- 'Cuz I never walk away from what I know is right Alice Cooper - Freedom |
|||
|
||||
xvr |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 35 Всего: 223 |
В данном случае так случилось, что такого модуля вообще не оказалось (т.к. функцию Insert забыли написать), на что линкер и выругался, что не смог найти таблицу виртуальных методов InternalNode. А понадобилась она ему в процессе компиляции тела конструктора InternalNode (его написать не забыли) |
|||
|
||||
mes |
|
|||
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 79 Всего: 250 |
ммм.. а разве, если б не было тела второго виртуального метода , то была б другая ошибка ? Это сообщение отредактировал(а) mes - 26.10.2010, 13:03 |
|||
|
||||
xvr |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 35 Всего: 223 |
||||
|
||||
mes |
|
||||||
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 79 Всего: 250 |
хм..
или я не так чего то понял ? http://liveworkspace.org/code/0bff868764e9...cf31f9a5f980443 или на лвс не gcc ? ![]() Это сообщение отредактировал(а) mes - 26.10.2010, 13:42 |
||||||
|
|||||||
xvr |
|
||||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 35 Всего: 223 |
Она должна быть не pure virtual и не inline (про эту часть я забыл упомянуть)
|
||||
|
|||||
Bugmaker |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 161 Регистрация: 27.6.2008 Репутация: нет Всего: нет |
Спасибо, за поясьнение.
Что такое pure virtual?) |
|||
|
||||
mes |
|
|||
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 79 Всего: 250 |
||||
|
||||
![]() ![]() ![]() |
Правила форума "C/C++: Для новичков" | |
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Для новичков | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |