У меня есть класс Base
в c ++.Я экспортирую его в python, используя boost :: python.Но как насчет виртуального деструктора?Любой базовый класс должен иметь виртуальный деструктор, чтобы избежать неправильного освобождения памяти, верно?Я забыл об этом и написал Base
без деструктора.Все работает, но с большим количеством утечек памяти.
Теперь я добавил:
class Base
{
public:
virtual ~Base();
// Other members...
};
И после импорта моего модуля в python я получаю ошибку:
ImportError: Base.so: неопределенный символ: _ZTI6Base
Что я делаю не так?И, как я понимаю, ошибка возникает из-за отсутствия экспортера деструктора для py-модуля.