Я пытаюсь скомпилировать код со следующей структурой под кодовыми блоками:
class a : public cppcms::application (has virtual members) {
public:
a() : b_inst(this) {}
...
b b_inst;
}
class b {
public:
b(a* ptr) : a_ptr(ptr) {}
private:
a* a_ptr;
...
}
Я пытаюсь соединить это с codeblocks / g ++ и получить следующее сообщение об ошибке (на этапе компоновки):
неопределенная ссылка на `vtable для b (в функции b: ...)
Я попытался получить то же самое с ссылкой, тот же результат. Я попытался изменить a :: b_inst на указатель и создать экземпляр b с новым в конструкторе (codepart), тот же результат.
Как правильно это сделать?
Кстати, если я не добавляю указатель, передающий конструкцию, код работает, поэтому я думаю, что он не решается с помощью ответа здесь