C++运算符重载实例代码详解(调试环境 Visual Studio 2019)
最近看了菜鸟教程里的C++教程
遇到很多运算符重载,为了方便我的学习,我把这些总结了一下
如有错误(包括之前的博文)请评论留言,谢谢!
由于代码里注释的很清楚,我就不做过多的解释了。
下面是这次总结的头文件,用来放置一些类和方法。
//C++运算符重载实例.h #pragmaonce #includeusingnamespacestd; classchongzai { private: inti,j,k; public: chongzai() { i=0; j=0; k=0; } chongzai(inta,intb,intc) { i=a; j=b; k=c; } //以下分别为A1,A2,A3的显示函数 voiddisplay1() { cout<<"A1:"< i+n.i; A.j=this->j+n.j; A.k=this->k+n.k; returnA; } /**********************************************************************************************/ /* 关系运算符重载: 大于(>),小于(<),大于等于(>=),小于等于(<=),等于(=)等 */ booloperator<(constchongzai&n)//以小于号(<)为例 { if(i =n.i) returnfalse; returnfalse; } /**********************************************************************************************/ /* 输入输出运算符重载: 流提取运算符>>和流插入运算符<< 使用友元函数无需设置对象,而且符合人们cout<<和cin>>的书写习惯 */ friendostream&operator<<(ostream&output,constchongzai&A) { output<<"i:"< >(istream&input,chongzai&A) { input>>A.i>>A.j>>A.k; returninput; } /*************************************************************************************************/ /* ++和--运算符重载: 包括前置和后置 */ chongzaioperator++()//以前置++为例 { ++i; ++j; ++k; returnchongzai(i,j,k); } chongzaioperator++(int)//后置++的特殊格式 { i++; j++; k++; returnchongzai(i,j,k); } /*************************************************************************************************/ /* 赋值运算符重载: 赋值运算符(=),比如拷贝构造函数 */ voidoperator=(constchongzai&A)//以拷贝构造函数为例 { i=A.i; j=A.j; k=A.k; } /*************************************************************************************************/ /* 函数调用运算符重载: 函数调用运算符()可以被重载用于类的对象。 当重载()时,您不是创造了一种新的调用函数的方式, 相反地,这是创建一个可以传递任意数目参数的运算符函数。 */ chongzaioperator()(inta,intb,intc) { chongzaiA; //利用()里的参数进行各种运算 A.i=a+b; A.j=b+c; A.k=a+c; returnA; } }; classchongzai2 { private: intarr[5]; public: intn; chongzai2() { for(n=0;n<5;n++) { arr[n]=n; } } /*************************************************************************************************/ /* 下标运算符[]重载: */ int&operator[](intn) { if(n>=5) { cout<<"索引超过最大值"< 然后这是主程序
//C++运算符重载实例.cpp #include"标头.h" #includeusingnamespacestd; intmain() { chongzaiA1(10,20,30),A2(100,200,300),A3; -A1;//一元运算符重载 A1.display1(); A3=A1+A2;//二元运算符重载 A3.display3(); if(A1 =D2"< >A3; cout<<"A3的各项参数为:"< 在输入A3的时候,举个例子,输入123
输出结果为
总结
到此这篇关于C++运算符重载实例(调试环境VisualStudio2019)的文章就介绍到这了,更多相关C++运算符重载内容请搜索毛票票以前的文章或继续浏览下面的相关文章希望大家以后多多支持毛票票!
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。