第八章, 友元类
2013-08-10 15:45
148 查看
1,定义
友元类:一个类将另一个类声明为友元类后,前者所有的成员数据对后者来说都是公有的。需要指出的是:友元关系不能传递,也不能继承。将类1声明为类2的友元并不能使类2成为类1的友元。就好比类1将自己的秘密告诉了类2,
并不代表类2也想将自己的秘密告诉类1.
友元打破了封装的特性。
2,声明
要将类声明为友元,可使用C++的关键字friend.看下面的例子:
class People; class Dog { int age1; friend People; public: void setAge(int aAge) { age1 = aAge; }; }; class People { int age; public: void setAge(int aAge) { age = aAge; }; void printf(Dog &d); }; void People::printf(Dog &d) { std::cout<<"people.age="<<age; std::cout<<"\ndog.age="<<d.age1; }; int main(int argc, const char * argv[]) { People p; p.setAge(11); Dog d; d.setAge(22); p.printf(d); return 0; }people是dog的友元类,在people的一个成员函数printf中可以直接访问dog的私有成员变量age.值就是友元的用处
他不但可以访问受保护的而且可以访问私有的成员变量。
相关文章推荐
- 第八章 程序的结构
- Thinking in Java 第八章------多态(2)
- 第八章 上机3
- Java——第八章(集合类)——项目案例
- 安徽大学大一高数第八章答案
- R语言实战笔记--第八章 OLS回归分析
- 算法概论第八章课后习题
- 第八章 虚拟化 项目实战
- 第八章:不要在构造和析构函数中使用虚函数
- 《道德经》第八章
- 第八章酒店管理系统
- 确保web安全的https、确认访问用户身份的认证(第七章、第八章)
- 《unix/linux编程实践教程》学习笔记:第八章 编写命令解释器sh
- 《UNIX网络编程卷1》读书笔记--第八章基本UDP套接字编程
- 《Credit Risk Scorecard》第八章: Scorecard Implementation
- 第八章 认识 EXT2 文件系统
- PJSUA2开发文档--第八章 好友(Buddy)类
- 使用HTML语言和CSS开发商业站点第八章
- effective java观后感(3)-------第八章