Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
xTimer* timer = xTimer::Create();glAttachShader(pImpl->mProgram, pImpl->mVertexShader->pImpl->mName);xTimer* timer = new xTimer()glAttachShader(pImpl->mProgram, pImpl->mVertexShader->pImpl->mName);glAttachShader(pImpl->mProgram, pImpl->mVertexShader->mName);Обращение внутри реализации и только.
/* SomeInterface.h */
class SomeInterface {
public:
static std::shared_ptr<SomeInterface> create();
virtual ~SomeInterface() { }
virtual someMethod() = 0;
};
/* SomeImplementation.h /*
class SomeImplementation : public SomeInterface {
public:
SomeImplementation();
virtual someMethod();
};
/* SomeImplementation.cpp /*
std::shared_ptr<SomeInterface> SomeInterface::create() {
return std::make_shared<SomeImplementation>( );
}
Перевод статьи «Pimp My Pimpl», часть 1