Я пишу заголовок C ++, в котором я определяю
class A {
// ...
};
что я хотел бы скрыть от внешнего мира (потому что он может быть изменен или даже удален в будущих версиях этого заголовка).
Также есть класс B в том же заголовке, который имеет объект класса A в качестве члена:
class B {
public:
// ...
private:
A a_;
};
Как правильно спрятать класс А от внешнего мира?
Если я помещаю определение A в безымянное пространство имен, компилятор выдает предупреждение, поэтому я предполагаю, что из-за проблем с внутренней связью я должен сделать что-то еще.