Существует ли передовая практика или наиболее распространенный способ решения следующей проблемы?
У меня есть несколько библиотек DLL, и некоторые классы внутри библиотек DLL должны использовать интерфейс.
Например, я иметь следующий интерфейс:
class MyInter {
public:
virtual void DoSomething() = 0;
}
using MyInterPtr = std::shared_ptr<MyInter>;
Этот интерфейс должен использоваться в библиотеках DLL следующим образом:
// DLL 1
class MyClass : public MyInter {
public:
...
virtual void DoSomething() override {
...
}
}
// DLL 2
class MyUsage {
public:
void usage() {
myinter->DoSomething();
}
private:
MyInterPtr myinter;
}
Теперь вопрос в том, где разместить файл интерфейса. Внутри отдельной библиотеки, которая включает или просто находится в общей папке, или есть даже лучший подход к этой проблеме?