forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   C++ (http://forum.boolean.name/forumdisplay.php?f=22)
-   -   Undefined reference to... (http://forum.boolean.name/showthread.php?t=13896)

Reizel 17.12.2010 00:50

Undefined reference to...
 
Юзаю класс Animal, от него есть производный - Animal1
Код класса Animal:
Код:

class Animal
{
        protected:
                float health;
        public:
                virtual void Update()=0;
                virtual Animal* Create()=0;     
};

Код класса Animal1:
Код:

class Animal1 : public Animal
{
      public:
            void Update();
            Animal* Create();
      protected:
};

void Animal1::Update()

        xRect(100,100,100,100,1);
}
Animal* Animal1::Create()
{
    Animal1 * a=new Animal1;
    a->health=100;
    ANIMALS.push_back(a);
    return a;
}

Выдает Undefined Reference to 'Animal::Update()' и
Undefined Reference to 'vtable for Animal'

Что я натворил не так, исправьте меня лучше щас, а то дальше будет хуже :-D

Morganolla 17.12.2010 00:58

Ответ: Undefined reference to...
 
virtual забыл. Компилер не может сделать таблицу для вирт. ф-ий.

Mr_F_ 17.12.2010 01:37

Ответ: Undefined reference to...
 
Цитата:

Выдает Undefined Reference to 'Animal::Update()' и
Undefined Reference to 'vtable for Animal'
на какой строчке то?
---
кстати - у меня компилится твой код. ошибка в рантайме что ли?

Knightmare 17.12.2010 10:20

Ответ: Undefined reference to...
 
Цитата:

PHP код:

class Animal
{
        protected:
                
float health;
        public:
                
virtual void Update()=0;
                
virtual AnimalCreate()=0;       
}; 


Я плакалъ. Утро началось отлично:-)

Reizel 17.12.2010 12:49

Ответ: Undefined reference to...
 
И чо тебе опять не так?

Reizel 17.12.2010 12:51

Ответ: Undefined reference to...
 
Цитата:

Сообщение от Mr_F_ (Сообщение 172132)
на какой строчке то?

Хех, если б так просто :) это Linker Error.

impersonalis 17.12.2010 13:11

Ответ: Undefined reference to...
 
Цитата:

Сообщение от Павел (Сообщение 172158)
И чо тебе опять не так?

эээээ :4to: :crazy: :crazy:
ты такой код где видел?

Mr_F_ 17.12.2010 16:45

Ответ: Undefined reference to...
 
мне показались странными "=0", но тем не менее

Цитата:

In C++, pure virtual functions are declared using a special syntax [ = 0 ] as demonstrated below.
class Abstract {
public:
virtual void pure_virtual() = 0;
};

Reizel 17.12.2010 17:42

Ответ: Undefined reference to...
 
Цитата:

Сообщение от impersonalis (Сообщение 172161)
эээээ :4to: :crazy: :crazy:
ты такой код где видел?

Мм, нигде, я сам придумал, так все-же что не так-то?? Аргументируйте :)

.Squid 17.12.2010 17:49

Ответ: Undefined reference to...
 
А определять виртуальные методы невиртуального класса кто будет?

pax 17.12.2010 17:49

Ответ: Undefined reference to...
 
Эх, что-то последнее время наша "элита" С++ программистов любит только издеваться над начинающими. Практически не помню нормальных ответов... к сожалению. Не в обиду.

Knightmare 17.12.2010 17:51

Ответ: Undefined reference to...
 
Цитата:

Сообщение от pax (Сообщение 172188)
Эх, что-то последнее время наша "элита" С++ программистов любит только издеваться над начинающими. Практически не помню нормальных ответов... к сожалению. Не в обиду.

Если начинающий - идиот, то зафига тут изображать из себя кэпа объясняя ему очевидные вещи?

pax 17.12.2010 17:52

Ответ: Undefined reference to...
 
Цитата:

Сообщение от Knightmare (Сообщение 172190)
Если начинающий - идиот, то зафига тут изображать из себя кэпа объясняя ему очевидные вещи?

Вероятно, чтобы передать свои знания ему. А на что еще форум нужен?

Knightmare 17.12.2010 17:54

Ответ: Undefined reference to...
 
Цитата:

Сообщение от pax (Сообщение 172191)
Вероятно, чтобы передать свои знания ему. А на что еще форум нужен?

Для этого есть начинающие, обремененные хотябы зачатками интеллекта.

pax 17.12.2010 17:58

Ответ: Undefined reference to...
 
Наверное мне не суждено понять разницу приведенных терминов "идиот" и "начинающий" упомянутые в данном топике.

PS: И я например тоже не понимаю где там не правильно.


Часовой пояс GMT +4, время: 03:35.

vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot