2013-08-20 2 views
2

Я пишу программу в OpenGL. Существует класс Gfx, который содержит контекст OpenGL и обертывает библиотеку OpenGL. Существует также класс Texture, который обертывает имена текстур OpenGL (включая генерацию и удаление). Класс Texture естественно имеет неявную зависимость от класса Gfx. Но я хочу RAII, никаких указателей, и поэтому думаю, что класс Texture должен быть общедоступным.C++/OOP: класс с неявной зависимостью от другого класса

Каков самый чистый способ выразить зависимость от сконструированного экземпляра Gfx?

+0

Как бы вы справились с потерей контекста? То есть в OpenGL ES 2? –

ответ

0

Предполагая, что текстура не может существовать без контекста, похоже, что аргумент конструктора является правильным в этом случае, возможно, std::shared_ptr<Gfx> (надеюсь, что это извиняется из вашей политики без указателей - я считаю это конструкцией C++). Таким образом, Gfx будет задерживаться до тех пор, пока по крайней мере одна текстура не будет удалена.

+0

Я думаю, что хранить ссылку слишком много (runtime) накладные расходы! Я больше надеюсь на статические утверждения. –

Смежные вопросы