Я работаю над графическим кодом для игровой библиотеки на Java. Я сделал пакет под названием com.engine.graphics
. В этом пакете у меня есть класс более низкого уровня, который называется VertexArrayObject
. Этот класс используется классами «клиентского уровня», которые будут использовать клиенты; однако я не хочу предоставлять клиентам доступ к VertexArrayObject
, так как это только усложнит их понимание моей библиотеки. Таким образом, я дал VertexArrayObject
спецификатор доступа по умолчанию; Таким образом, только классы в пределах com.engine.graphics
имеют к нему доступ, а также сообщают клиентам, что им не нужно знать, что это такое.Версия C++ для защиты пакетов от Java?
Как и в случае с этим стандартным соглашением для Java, я решил, что для этого требуется определенное стандартное соглашение для C++; однако мои поисковые запросы в Интернете не дали никаких результатов.
Итак, мой вопрос в том, что такое конвенция? А если нет, то какой лучший подход?
Я не думаю, что есть что-либо * одинаковое *, но есть [*** классы друзей ***] (https://en.wikipedia.org/wiki/Friend_class). –
Проверьте [ИИОМОМ PIMPL] (http://c2.com/cgi/wiki?PimplIdiom) –
Это зависит от того, как именно используются классы клиентов. Можете быть более конкретными? – Galik