2018年4月20日

c++运算符定义为成员函数还是非成员函数

摘要: =,[],->,()运算符必须是成员,赋值,下标,箭头访问,调用; 复合赋值运算符一般应该是成员; 改变对象状态的运算符或与给定类型密切相关的运算符例如递增减,解引用应该是成员; 具有对称性的运算符可能转换任意一端的运算对象,例如==,算术相等性关系,位运算等等 **当把运算符定义为成员函数时,左侧 阅读全文

posted @ 2018-04-20 14:25 CreatorKou 阅读(1129) 评论(0) 推荐(0) 编辑

c++重载运算符位置的限制

摘要: C++规定有四个运算符 =, ->, [], ()不可以是全局域中的重载(即不能重载为友员函数),这是为什么呢?现在先说说赋值运算符“=”的重载C++规定赋值运算符“=”只能重载为类的非静态成员函数,而不可以重载为类的友元函数。不能重载为类的静态成员应该比较容易理解,因为静态成员函数是属于整个类的, 阅读全文

posted @ 2018-04-20 09:18 CreatorKou 阅读(176) 评论(0) 推荐(0) 编辑

为什么operator<<运算符重载一定要为友元函数

摘要: 一、 为什么operator<<运算符重载一定要为友元函数呢? 如果是重载双目操作符(即为类的成员函数),就只要设置一个参数作为右侧运算量,而左侧运算量就是对象本身。。。。。。而 >> 或<< 左侧运算量是 cin或cout 而不是对象本身,所以不满足后面一点。。。。。。。。就只能申明为友元函数了。 阅读全文

posted @ 2018-04-20 09:10 CreatorKou 阅读(1510) 评论(0) 推荐(0) 编辑

导航