В C ++ вы можете определить чисто виртуальный метод.Например:
// T.hpp
class T
{
public :
virtual void doSomething() = 0 ;
// etc.
} ;
.
// T.cpp
void T::doSomething()
{
}
// etc.
Теперь, когда в класс T добавлен спецификатор dllexport / dllimport, будет экспортирован метод doSomething
.
Смысл определения тела чисто виртуального метода состоял в том, чтобы убедиться, что пользователь переопределит метод, при этом предлагая реализацию по умолчанию.
Мое собственное использование этого шаблона состоит в том, чтобы избежать сбоя, когда дляпо какой-то причине виртуальный метод вызывается до того, как он существует, или когда он больше не существует (т. е. в конструкторе или деструкторе базового абстрактного класса).В режиме отладки он запустит отладчик (::DebugBreak()
функция Win32 API), а в режиме выпуска он ничего не сделает.
Но этот шаблон также можно использовать для решения вашей проблемы, если вам действительно это нужно.экспортировать ваши чисто виртуальные функции.