C++友元详解:第15.2节深入讨论

需积分: 48 185 下载量 117 浏览量 更新于2024-08-10 收藏 4.41MB PDF 举报
在C++ Primer的第三版中,15.2节专门探讨了友元这一高级主题。友元是一种特殊的编程概念,允许类之间共享访问权限,即使这些类本身不具备继承关系。在类的声明和定义阶段,理解友元至关重要。类一旦被定义,其成员便公开给友元,这样友元可以在不通过类的对象直接访问类的私有(private)和保护(protected)成员。然而,友元仅限于声明而非定义的类,因为未定义的类大小和成员信息是未知的,这限制了友元功能的使用。 类声明如`class Screen;`引入了Screen类的名称,但仅提供了一个符号,不允许实例化对象或直接访问其内部细节,除非该类被完全定义。指针和引用可以用来间接处理友元,因为它们有固定的大小,与它们指向的对象大小无关。然而,为了正确地解引用友元指针或引用并访问成员,必须等待类完全定义完成。 StackScreen类的定义中,可以看到友元的一个例子,其中包含一个指向Screen类的指针。这意味着StackScreen能够直接访问Screen类的私有成员,尽管StackScreen本身不是Screen的继承或派生类。这展示了友元在扩展类之间功能交互中的灵活性。 C++作为一种复杂的编程语言,其标准的制定和统一使得编写可移植代码成为可能。Stanley Lippman和Josée Lajoie作为权威专家,他们对C++的理解深度和对标准的把握,使得本书成为理解和学习C++的权威资源。通过阅读本书,读者不仅能纠正对C++的误解,还能全面了解这门语言,以及如何利用友元等特性进行高效、标准兼容的编程。尽管市面上有很多优秀的C++书籍,但C++ Primer以其丰富的经验基础和标准一致性,使其在众多资源中独具特色。
2023-06-03 上传