![]() |
Undefined reference to...
Юзаю класс Animal, от него есть производный - Animal1
Код класса Animal: Код:
class Animal Код:
class Animal1 : public Animal Undefined Reference to 'vtable for Animal' Что я натворил не так, исправьте меня лучше щас, а то дальше будет хуже :-D |
Ответ: Undefined reference to...
virtual забыл. Компилер не может сделать таблицу для вирт. ф-ий.
|
Ответ: Undefined reference to...
Цитата:
--- кстати - у меня компилится твой код. ошибка в рантайме что ли? |
Ответ: Undefined reference to...
Цитата:
|
Ответ: Undefined reference to...
И чо тебе опять не так?
|
Ответ: Undefined reference to...
Цитата:
|
Ответ: Undefined reference to...
Цитата:
ты такой код где видел? |
Ответ: Undefined reference to...
мне показались странными "=0", но тем не менее
Цитата:
|
Ответ: Undefined reference to...
Цитата:
|
Ответ: Undefined reference to...
А определять виртуальные методы невиртуального класса кто будет?
|
Ответ: Undefined reference to...
|
Ответ: Undefined reference to...
Цитата:
|
Ответ: Undefined reference to...
Цитата:
|
Ответ: Undefined reference to...
Цитата:
|
Ответ: Undefined reference to...
|
Ответ: Undefined reference to...
короче попробуй вместо =0 сделать
virtual void Update() { } virtual Animal* Create() { } |
Ответ: Undefined reference to...
Я к "элите" С++ не отношусь, поэтому попробую помочь.
В 2008-й студии этот код компилируется нормально, и даже работает. Думаю что для твоего компилятора просто стоит указать квалификатор "virtual" Код:
class Animal1 : public Animal UPD: Нет, virtual указывать не обязательно, ошибка наверное действительно "где-то в коде, который нам не был продемонстрирован" |
Ответ: Undefined reference to...
Цитата:
|
Ответ: Undefined reference to...
Цитата:
|
Ответ: Undefined reference to...
Цитата:
|
Ответ: Undefined reference to...
Блин, я забыл, что функция Create() статичной должна быть, переписал - все заработало...
UPD Dev C++ странная IDE какая-то: при первой попытке скомпилить код - выдает кучу варнингов, даже если нет ошибок, а работает только после повторного нажатия f9 |
Ответ: Undefined reference to...
Можно сделать вот так:
class.hpp Код:
#ifndef __CLASS_H__ Код:
Код:
#include "class.h" |
Ответ: Undefined reference to...
не забываем о виртуальном деструкторе в class Animal, а то потом кучу геморроя заимеем
ps. для скорости я убираю virtual в методах которые мне явно не понадобится переопределять, а virtual ... = 0 находится только в декларациях методов интерфейса те так : Код:
class WildBoar : public Animal { Код:
Animal * foo = new WildBoar; но если написать так : Код:
Animal * foo = new WildBoar; хочу заметить что в данном случае нет никакого RTTI, и его использовать тоже не стоит (так же как и try...catch), в геймдеве рискуют статическим методом предоставления безопасности кода, а пользуются здравым смыслом :) |
Ответ: Undefined reference to...
|
Ответ: Undefined reference to...
Человек, не знающий C++ - идиот
|
Ответ: Undefined reference to...
Идиот, ты тупой, какое отношение имеешь ты к с++ ??
Зы: Достоевский Ф. М. - "Идиот" !! |
Ответ: Undefined reference to...
|
Ответ: Undefined reference to...
|
Ответ: Undefined reference to...
Цитата:
И наверное не думал, что форум является так же учебным пособием, которое новичок возьмет и прочитает и потом вопроса не задаст? UPD: Посылая новичка гуглить куда он попадает? На такие же форумы. |
Ответ: Undefined reference to...
может есть резон обсудить это отдельно?) в аське, или хотя бы в другом разделе?) или тема битая, и лучше прекратить флуд, оставшись при своём мнении? to Randomize |
Ответ: Undefined reference to...
|
Ответ: Undefined reference to...
St_AnGer
Цитата:
А есть вопросы типа "вот жеж фак чо делать!111" "чем list от vector отличается", "у меня ошибка вылетает, что делать?" (часто с примером кода, но без описания ошибки, или наоборот..). Ирония, сарказм и стёбы над такими вопросами ВПОЛНЕ НОРМАЛЬНОЕ явление. И ничего в этом плохого нету. Если ещё посыл к литературе или гуглу будет - вообще отлично. |
Ответ: Undefined reference to...
|
Ответ: Undefined reference to...
|
Ответ: Undefined reference to...
Цитата:
Код:
#include <iostream> |
Ответ: Undefined reference to...
Цитата:
Цитата:
не хочется доказывать, что скормить авторский код компилятору и линкеру, задача тривиальная.. да и глупо спорить с сообществом, особенно когда его представители цепляются к отдельным фразам, пропуская мимо ушей суть.. Я остаюсь при своём мнении.. вполне нормально, что новички не умеющие самостоятельно находить ответы на тривиальные вопросы (в т.ч. самостоятельно находить пропущенные static в своём коде) получают в ответ лишь иронию и сарказм. |
Ответ: Undefined reference to...
Не согласен с тем, что не знающий С++ -идиот. С++ - в полном объеме ( с STL и т.п.) очень сложный и универсальный язык. Вот если не можешь выучить простой С - то может быть и идиот...) . А вообще к вопросам начинающих надо относиться терпимо. А жлобство найтмара мне не нравится...)
|
Ответ: Undefined reference to...
Цитата:
я в своих постах давал альтернативы. При чём не про тех, кто не знает. А про тех кто херово учится. Либо невнимательно читал и нужно читать заново, либо всё-таки идиот. )) |
Часовой пояс GMT +4, время: 19:03. |
vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot