C++(03 或 11)中有没有办法限制类的可见性(类似于 Java 中的默认或包范围)?例如:
Foo
应该只对 可见Bar
但对 不可见Baz
。
class Foo {};
class Bar { Foo foo; /* OK */ };
class Baz { Foo foo; /* not visible, error */ };
此处建议的匿名命名空间解决方案如何限制声明它的命名空间之外的类的可见性?似乎没有工作。[演示: http: //ideone.com/fsEKPu ]我有什么误解吗?