成员函数和友元函数的选择方案指导原则
来源:互联网 发布:淘宝宝贝无线链接地址 编辑:程序博客网 时间:2024/05/22 09:26
成员函数和非成员函数 ( 友元函数 ) 选择方案
通常对类本身的操作 ,( 如赋值 =, 下标 [], 调用 (), 成员访问符 ->, 自增 ++, 自减 --) 请选择成员函数
通常对两个对象进行操作 ,( 如算术操作 , 位操作符 , 关系操作 , 输入输出 ) 请选择非成员函数 , 就是用友元函数实现
成员 / 非成员函数重载选择指导
一元操作符就是操作符有一个对象 , 如 x++,y-- 等 , 通常以类的成员函数实现重载
二元操作符就是操作符有二个对象 , 如 x+y,x-y 等 , 通常以类的友元函数实现重载
通常对类本身的操作 ,( 如赋值 =, 下标 [], 调用 (), 成员访问符 ->, 自增 ++, 自减 --) 请选择成员函数
通常对两个对象进行操作 ,( 如算术操作 , 位操作符 , 关系操作 , 输入输出 ) 请选择非成员函数 , 就是用友元函数实现
成员 / 非成员函数重载选择指导
一元操作符就是操作符有一个对象 , 如 x++,y-- 等 , 通常以类的成员函数实现重载
二元操作符就是操作符有二个对象 , 如 x+y,x-y 等 , 通常以类的友元函数实现重载
以上规则是一个建议,其实两种方式都可以实现,如下所示。注意,如果一个函数有friend修饰,那么它在public还是private域限制都失效了,因为这个函数是friend。以下面的例子为例,friend bool operator ==() 可以移到private域,不影响使用。如果同时定义了友元函数和成员函数,那么VS2010编译器默认调用的是成员函数的版本if (a == b) {...},除非显式调用友元函数版本,比如 if( operator == (a, b)) {...}
class AAA{public: bool operator == (const AAA &a); friend bool operator == (const AAA &left, const AAA &right); private: int v;};bool operator == (const AAA &left, const AAA &right){return left.v == right.v;}bool AAA::operator == (const AAA &a){return v == a.v;}
- 成员函数和友元函数的选择方案指导原则
- 成员函数,友元函数和一般函数的区别
- 成员函数友元函数和一般函数的区别
- 成员函数、友元函数和一般函数的区别
- 成员函数 友元函数 和 一般函数的区别
- 成员函数、友元函数和一般函数的区别
- 对于友元重载方式和成员函数重载方式的选择
- 对于友元重载方式和成员函数重载方式的选择
- 第六周 项目4-成员函数、友元函数和一般函数的区别---成员函数
- 成员函数和友元函数的区别
- 分清成员函数,非成员函数和友元函数
- 成员函数 非成员函数和友元函数
- 成员函数 非成员函数和友元函数
- 成员函数、非成员函数和友元函数介绍
- 分清成员函数,非成员函数和友元函数
- 成员函数,非成员函数和友元函数
- 分清成员函数,非成员函数和友元函数
- C++类的成员函数、非成员函数和友元函数
- Java数组使用技巧
- 电子词典开发几个知识点
- 二维码生成原理
- 大量的TIME_WAIT解决办法
- ubuntu下安装net-snmp5.7.1的步骤
- 成员函数和友元函数的选择方案指导原则
- 【How Tomcat Works】第一章——一个简易的java web服务实现(上)
- 给std::swap添加新版本的swap模板
- Eclipse复制maven工程
- 怎样在Word2010中新建样式
- ARM 嵌入式Linux开发-2G 3G无线传输(DTU)和路由器(目录介绍)
- 百度实习1,2,3面-教育知心搜索前端项目组
- 几种将网站设为首页的代码
- leetcode之Reverse Linked List II