关于友元,重载的使用说明
2015-08-31 11:31
796 查看
类的友元函数说明:声明在类内,定义在类外,不能直接访问类的成员函数,可以通过类的实例访问,但是此时就部分private,还是publicconst的重载在c++的重载封装中非常常见并且很实用,在可用const的private函数部分尽量实用.友元重载一定必须是有至少一个参数是类自身的实例参数友元函数大多实用const的参数,单数由于不是类的成员函数所以是不能通过const参数构成重载重点说明iostream的<<, >>的重载,见代码部分补充说明:但在导出类中使用了友元函数,必须在每个声明的友元函数的最前面加上__declspec(dllexport),因为他是类外的全局函数,所以导出函数的写法是在每个导出函数的头部特别的加上导出说明符..
DLL_STRING friend istream& operator>>(istream &In,CMyString &obj); DLL_STRING friend ostream& operator<<(ostream &out,CMyString &obj); DLL_STRING friend bool operator==(const char *pstrSrc,const CMyString &Obj);
<pre name="code" class="cpp">DLL_STRING istream& operator>>(istream &In,CMyString &obj){ char szbuf[255] = ""; In>>szbuf; obj = szbuf; return In;}DLL_STRING ostream& operator<<(ostream &out,CMyString &obj){ out<<obj.getStr(); return out;}DLL_STRING bool operator==(const char *pstrSrc,const CMyString &Obj){ return Obj.strCmp(Obj.getStr(),pstrSrc); //return Obj == pstrSrc;}
以上结论是通过代码的实现部分总结得出的,并没有按照书本来说明,如果有同学在自己实现部分又不一样的结果,希望说明,大家一起探讨,,
相关文章推荐
- 硬件十万个为什么——运放篇(十)输入阻抗
- dom解析xml之中文乱码问题
- InvocationHandler中invoke()方法的调用问题
- The ROI Variable
- 【mysql】iBator 数据库操作(自动生成文件)
- SQLServer优化资料整理(一)
- WEB项目中配置属性加密的方式
- 安卓的优缺点
- 软件服务费用之争
- java基础学习第一章练习4-幸运抽奖
- CAN总线基础知识(三)
- CAN总线基础知识(三)
- 九度oj 1187
- MySQL优化的一点记录。
- Android 常用效果(各种进度条,酷炫loading动画,火箭升空,撒花以及趋势图)
- CAN总线基础知识(三)
- linux之Segment Fault错误分析[1]
- 《最近在工作上有点迷茫》
- CAN总线基础知识(三)
- OC的ARC(自动内存管理)注意事项