Ошибка линковки.
как ты это умудрился скомпилить?
Это абстракция.
Ну тогда пость код, который ты компилил.
А этот-то чем тебе не нравиться?
B = new B;
поддерживаются, на самом деле
но вот это точно нет
Исправил
И в исходниках тоже?
В исходниках все нормально было
Кароч, если сам не разрулил ещё, на всякий случай скажу, что функция виртуальная, но не чисто.
virtual void func2;virtual void func2 = 0;
Как уже отметил г-н Асет...
Именно потому очевидно и нужна, что объявлена как virtual: ее адрес должен быть помещен в таблицу виртуальных функций, которая присутствует и в потомках (B). Каким же образом тебе линкер узнает ее адрес (чтобы поместить в таблицу если тело отсутствует?
class A
{
public:
void func1 {return;};
virtual void func2;
};
class B : public A
{
public:
void func2 {return;};
};
main
{
B * b = new B;
b->func2; //Извините, описался =)
}
В итоге линкер грит, что не может найти тело функции A::func2.
Нахуя она ему нужна, если она объявлена как virtual?!
virtual void func2 = 0;C чего ты решил, что автор желает сделать абстрактным класс A?
Абстрактным
Абстрактнымну да, типа того
исправил
C чего ты решил, что автор желает сделать абстрактным класс A?Все нормально, он должен был быть абстрактным.
Всем спасибо .
Оставить комментарий
Slavaga
В итоге линкер грит, что не может найти тело функции A::func2.Нахуя она ему нужна, если она объявлена как virtual?!
Что делаю неправильно?