当前位置: 首页 > news >正文

黑河市网站建设_网站建设公司_网站开发_seo优化

什么样的网站不备案,初学者怎么做php网站,企业做网站天津,家居企业网站建设新闻引例 class Integer{ public:Integer(int num):_num(num){}int getValue(){return _num;} private:int _num; };现在有两个Integer对象a,b。想让a和b相加得到的结果给对象c#xff0c;现在可以肯定的是cab编译后肯定会报错 请注意这条信息no match for operator (oper…引例 class Integer{ public:Integer(int num):_num(num){}int getValue(){return _num;} private:int _num; };现在有两个Integer对象a,b。想让a和b相加得到的结果给对象c现在可以肯定的是cab编译后肯定会报错 请注意这条信息no match for operator (operand types are Integer and Integer) 现有的加法运算符无法对两个Integer对象进行操作那么有什么方法可以让加法运算符可以对两个Integer对象进行操作实现的方法就是运算符重载。 运算符重载 我们平常常见的算术运算符、逻辑运算符等运算符都是系统库函数里面已经存在的所以运算符可以直接用于我们常用的数据类型。然而对于我们自定义的类实例化的对象系统没有与之相关的运算符可以操作但是为了使我们编写程序时更加便捷C提供了一种方式——运算符重载来满足我们对于类对象进行的操作。 但是需要注意并不是所有的运算符都可以重载。 可以重载的运算符 算术运算符 - * / %自增、自减运算符 –位运算符| ~ ^ 逻辑运算符|| !关系运算符 ! 赋值运算符 - / % | ^ 单目运算符 - * 动态内存分配new delete new[] delete[]其他运算符() - , [] 不能重载的运算符 . 成员访问运算符:: 域运算符.* -* 成员指针访问运算符szieof 长度运算符?: 条件运算符 运算符重载的语法形式 对于前面的Integer类重载加法运算符 Integer operator (Integerother){return Integer(this-_numother._num); }重载好了之后cab这个语句就不会报错了。 对于类的运算符重载的方式有3种 重载为类的非静态成员函数重载为类的有元函数重载为普通函数 上面的那一种就是重载为类的非静态成员函数 重载为类的有元函数 Integer operator(const Integerleft,const Integerright){return Integer(left._numright._num); }类的非静态成员函数方式重载的这个函数还是有点点问题的 Integer operator (const Integerother){return Integer(this-_numother._num); }考虑这样的情况 const i1Integer(1); const i2Integer(2); auto i3i1i2那么则个时候就会报错 其实这个错误很好理解i1和i2都是常对象常对象只能访问常成员那i1就根本访问不了operator ()这个函数当然会报错。改正的方法也很简单operator ()加上一个const就可以了 Integer operator (const Integerother)const{return Integer(this-_numother._num); }上面是在讨论对象对象除了这种情况是不是还会有 对象数 数对象 Integer count1a1 Integer count22b 对于这种形式的Integer count1a1通过非静态成员函数进行重载就可以了 Intger operator(int v) {return Intger(this-number_ v); }但是对于这个Integer count22b如果还通过非静态成员函数进行重载那么就会出错 Integer operator(int v,const Integer right) {return Integer(this-number_ v); }因为加法运算符有左右两个操作数那么重载加法运算符也要有两参数声明为非静态成员函数那么隐含的this指针算一个那么函数的参数列表里写一个就可以了。上面那个加上隐含的this就三个参数了。解决的方法就是重载为类的有元函数 这篇文章就到这里了希望你能对运算符重载有一个初步的了解。下面的代码是用到的例子 #include iostream class Integer{friend Integer operator(int v, const Integer right); public:Integer(int num):_num(num){}int getValue(){return _num;}Integer operator (const Integerother)const {return Integer(this-_numother._num);}//friend Integer operator(const Integerleft,const Integerright);Integer operator (const Integerother){this-_numother._num;return *this;}Integer operator(int v){return Integer(this-_num v);}/* Integer operator(int v,const Integer right){return Integer(this-number_ v);} */ private:int _num; }; /* Integer operator(const Integerleft,const Integerright){return Integer(left._numright._num); } */ Integer operator(int v, const Integer right) {return Integer(right._num v); } int main(){Integer a(1),b(2);Integer cab;const Integer i1(1);const Integer i2(2);auto i3i1i2;Integer count1a1;Integer count22b; }ger a(1),b(2); Integer cab; const Integer i1(1); const Integer i2(2); auto i3i1i2; Integer count1a1; Integer count22b; }
http://www.lebaoying.cn/news/83680.html

相关文章:

  • 网站备案通知wordpress自定义文章类型输出数量
  • 泰安公司网站建设价格查询土特产直营网站建设代码
  • 网站开发需要经历哪些主要阶段视频链接生成器在线
  • 英语网站排名pc端网站优缺点
  • 官方网下载app下载西安网站优化招聘网
  • 龙岩网站设计 都找推商吧系统适合个人做的网站有哪些
  • 湘潭网站建设 搜索磐石网络注册网站用于跳转虚拟货币网站违法
  • 网站建设作业素材购物网站开发教程
  • 吉祥物在线设计网站人物介绍网页模板html
  • 做网站好还是网页好网站设置仅某浏览器
  • 无锡做网站设计阿里巴巴做国际网站多少钱
  • 建设网站需要提前准备的条件什么是seo优化推广
  • 哪些网站做代理wordpress phonegap
  • 中山网站推广优化正规小程序开发的公司
  • 网络营销导向企业网站建设的一般原则是什么?陕西建设银行网站
  • 维恩图在线制作网站网站开发常用模板
  • 网站开发手机端redis wordpress 设置
  • 做网站需要多少钱西安网站生成手机版
  • 企业网站添加图片南开网站建设公司
  • 张掖网站建设0936e硅胶模具技术支持东莞网站建设
  • 做网站菏泽员工之家app官网下载地址
  • 怎样办自己的网站怎么制作网页支付链接
  • 做网站买一个域名多少钱如何成功进行网络营销
  • 常规网站建设价格实惠注册域名后网站建设
  • 怎样建俄文网站一键搭建网站windows
  • 网站怎么更新数据网站建设服务商排行
  • 网站企业建设公司排名原有网站已备案 怎么做接入
  • 网站刷新代码成立公司后需要做的事情
  • 苏州做网站哪里好网站建设的意义与价值
  • 网站建设的财务分析深圳网站设计哪家