Я написал класс оболочки C++ для API C.forward объявить C typedef в заголовке C++
В моем классе-оболочке есть отдельный экземпляр-элемент структуры typedef, используемый в исходном API. Я не хочу изменять заголовочный файл API, но я также хочу скрыть все следы исходного API, поэтому НЕ хочу включать исходный заголовочный файл API в заголовок класса оболочки.
Я, вероятно, с видом на что-то действительно простое, но я не нахожу его. PIMPL - это вариант, но я бы предпочел искать альтернативы перед реорганизацией всей базы кода для одной мелочи.
wrapper.hpp
class myWrapper
{
public:
myWrapper();
private:
originalTypedef *original; // forward declaration needed for originalTypedef
};
wrapper.cpp
#include "wrapper.hpp"
#include "originalAPI.h"
myWrapper::myWrapper()
{
original = originalAPI_get();
}
main.cpp
#include "wrapper.hpp"
int main()
{
myWrapper wrapper = new myWrapper();
}
Можете ли вы предоставить нам [MCVE], пожалуйста? –
Помимо того, что я предоставил? То, что я предоставил, более последовательное. – audiFanatic
[PIMPL.] (Http://stackoverflow.com/questions/60570/why-should-the-pimpl-idiom-be-used) – user4581301