摘要: (译注:我想在大多数情况下我会选择直接把Bar声明成Foo的友元。第二个例子倒是挺有意义的。)目的控制对一个类的实现细节的访问颗粒度。动机C++中的友元声明赋予被声明者对一个类的内部的完全访问权限。友元声明因此遭到指责 - 他们破坏了精心打造的封装。C++的友元关系特性没有提供任何可以选择性的对私有成员的一个子集授予权限的方法。友元关系在C++中是一个“所有或者一个也不”的命题。例如,下面的类Foo声明类Bar为其友元。类Bar因此拥有访问类Foo中所有私有成员的权限。这可能不是所期望的,因为它增加了耦合性 - 类Bar不能在没有类Foo的情况下被分发。class Foo{private:vo 阅读全文
posted @ 2011-12-14 23:15 Shawnone 阅读(626) 评论(0) 推荐(0) 编辑