c++友元
来源:互联网 发布:效能日程提醒软件 编辑:程序博客网 时间:2024/05/17 07:08
上一篇博文提到了访问权限,想到友元可以改变访问权限,在这里记录一下。
友元用friend申请,其他类不可以访问本类型的私有成员,但是申请友元后侧可以访问。
一般友元有3种形式:
1)友元类 2)友元函数 3)友元成员函数
1友元类
class A;//第一步申明友元类class B//第二步定义要申请友元的类(在类中申明友元关系){public:B(int _age):age(_age){}friend A;//申明友元关系private:int age;};class A//第三步定义友元类{public: void print(const B & b) { cout<<"B.age=="<<b.age<<endl; }};
2友元函数
class B//第一步定义要申请友元的类(在类中申明友元关系){public:B(int _age):age(_age){}friend void print(const B & b);//申明友元关系private:int age;};//第二步定义友元函数void print(const B & b){ cout<<"B.age=="<<b.age<<endl;}
3友元成员函数(最麻烦的一个)
class B;//第一步申明要申请友元的类(因为友元类中要用到它)class A//第二部可以定义友元类(类中的友元成员函数除外,因为它要用到申请友元类的成员,而暂时申请友元的类并没有定义){public:A(){ cout<<"Run Constructor"<<endl;}void test(){cout<<"Run test"<<endl;}void print(const B & b);//申明类中友元成员函数,只是申明};class B//第三步定义要申请友元的类(在类中申明友元关系){public:B(int _age):age(_age){}friend void A::print(const B & b);//申明友元关系private:int age;};//第四部定义友元成员函数void A::print(const B & b){ cout<<"B.age=="<<b.age<<endl;}
- C++(一)友元
- [C++]友元学习
- [c++]友元函数
- [c++] 友元详解
- 【C++】友元函数
- c++:友元函数
- C++:友元函数
- C++:友元
- C/C++ 友元
- 【C++】友元函数
- C++:友元
- C++----友元
- 【C++】C++友元
- C++_友元函数
- C++_友元函数
- C++_友元函数
- C++_友元函数
- C++_友元函数
- win7配置自己的IIS服务器亲自做的图文...
- php isset和empty、==(等)和===(恒等)的区别
- scsi总线驱动的初始化
- hibernate二级缓存
- openldap 应用
- c++友元
- GitHub托管Xcode工程
- Request和Response
- 嵌入式ARM架构主板和X86架构主板的优缺点
- 转载:CWnd与HWND的区别与转换
- mysql出现大量的locked(处理脚本)
- 关于csdn,cnblog,51cto,iteye四个博客比较
- OpenGL入门学习
- 几天没事,写了个基于WEBQQ协议的机器人。开源喔。