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

中企动力做过的网站厦门网站推广步骤机构

中企动力做过的网站,厦门网站推广步骤机构,网站内容怎么写,深圳vi设计多少钱文章目录一、概念二、程序示例1. 加减乘除重载2. 赋值运算符重载3. 递增递减运算符重载4. 关系运算符重载5. 左移运算符重载6. 函数调用运算符重载一、概念 C中运算符重载是为了实现对象之间进行各种运算的特定语法#xff0c;在某些特定的场合起到重要的作用#xff0c;新建… 文章目录一、概念二、程序示例1. 加减乘除重载2. 赋值运算符重载3. 递增递减运算符重载4. 关系运算符重载5. 左移运算符重载6. 函数调用运算符重载一、概念 C中运算符重载是为了实现对象之间进行各种运算的特定语法在某些特定的场合起到重要的作用新建重载方法需用operator关键字进行修饰。 可以重载运算符包括、-、*、\、赋值运算符、左移运算符、递增运算符、递减运算符- -、关系运算符、函数调用运算符等。 运算符重载需要遵守以下规则 1 重载时不能违法运算符原来的句法规则。 2 只能重载C定义的运算符。 3 不能改变运算符原有的优先级。 4 运算符的结合性不能被改变。 5 不能进行重载的运算符成员运算符(.)()条件运算符sizeof、强制类型转换运算符。 6 运算符的目数又称“元数”即运算符所需要的操作数的数目不能被改变。 7 当重载“”、“[]、“-”、时运算符重载函数必须被声明为类成员。 二、程序示例 1. 加减乘除重载 #includeiostream using namespace std;class MyFloat {//成员函数重载运算符 public://MyFloat operator(MyFloat myf)//{// MyFloat temp;// temp.N1 this-N1 myf.N1;// temp.N2 this-N2 myf.N2;// return temp;//}MyFloat operator-(MyFloat myf){MyFloat temp;temp.N1 this-N1 - myf.N1;temp.N2 this-N2 - myf.N2;return temp;}MyFloat operator*(MyFloat myf){MyFloat temp;temp.N1 this-N1 * myf.N1;temp.N2 this-N2 * myf.N2;return temp;}MyFloat operator/(MyFloat myf){MyFloat temp;temp.N1 this-N1 / myf.N1;temp.N2 this-N2 / myf.N2;return temp;}public:float N1;float N2; };//全局函数重载运算符 MyFloat operator(MyFloat Myf1, MyFloat Myf2) {MyFloat temp;temp.N1 Myf1.N1 Myf2.N1;temp.N2 Myf1.N2 Myf2.N2;return temp; }MyFloat operator(MyFloat Myf1, int N) {MyFloat temp;temp.N1 Myf1.N1 N;temp.N2 Myf1.N2 N;return temp; }int main() {MyFloat myf1;myf1.N1 float(3.6);myf1.N2 float(3.4);MyFloat myf2;myf2.N1 float(3.6);myf2.N2 float(3.4);/*MyFloat myf3 myf1.operator(myf2);*///本质写法/*MyFloat myf3 operator(myf1, myf2);*/MyFloat myf3 myf1 myf2;//简化写法MyFloat myf31 myf1 1;MyFloat myf4 myf1 - myf2;MyFloat myf5 myf1 * myf2;MyFloat myf6 myf1 / myf2;cout myf3.N1 myf3.N2 endl;cout myf31.N1 myf31.N2 endl;cout myf4.N1 myf4.N2 endl;cout myf5.N1 myf5.N2 endl;cout myf6.N1 myf6.N2 endl; }7.2 6.8 4.6 4.4 0 0 12.96 11.56 1 12. 赋值运算符重载 #includeiostream using namespace std;class MyFloat { public:MyFloat(float n){N new float(n);}//赋值运算符MyFloat operator(MyFloat myf){//先判断是否有堆区的属性if (N ! NULL){delete N;N NULL;}//深拷贝N new float(*myf.N);return *this;}//如果不加赋值运算符重载对象的赋值操作会引发内存重复释放的异常。~MyFloat(){if (N ! NULL){delete N;N NULL;}}float *N; };int main() {MyFloat myf1(1.1415);MyFloat myf2(2.1415);MyFloat myf3(3.1415);myf3 myf2 myf1;cout *myf3.N endl;;cout *myf2.N endl;;}3. 递增递减运算符重载 #includeiostream using namespace std;class MyFloat {friend ostream operator(ostream cout, MyFloat myf); public:MyFloat(){N 3.1415;}//重载前置运算符返回类型为引用是因为如果不加返回值属于值类型重载函数运行完后会销毁//运行完后N的值始终只会加一次1,如果再调用重载N的值不会一直加1MyFloat operator(){//先进行计算N;return *this;}//重载后置运算符,int代表占位参数用于区分前置后置MyFloat operator(int){//先记录当时的结果MyFloat temp *this;//后递增N;return temp;}//重载前置--运算符MyFloat operator--(){//先进行--计算N--;return *this;}//重载后置--运算符,int代表占位参数用于区分前置后置MyFloat operator--(int){//先记录当时的结果MyFloat temp *this;//后递减N--;return temp;}private:float N; };ostream operator(ostream cout, MyFloat myf) {cout myf.N;return cout; }int main() {//后置重载MyFloat myf;cout myf endl;cout myf endl;cout myf-- endl;cout myf endl;MyFloat myf1;cout myf1 endl;cout (myf1) endl;//又调用一次相当于先调用了一次拷贝构造函数然后再调用重载拷贝构造函数会重新创建一个拷贝的值的内存再运行完后销毁。//如果重载返回值类型不加会直接销毁myf1的拷贝值加会创建一个指针常量一直指向内存中的N返回值也会一直是类中的N而不是拷贝的N的值。cout myf1 endl;cout --myf1 endl;cout myf1 endl; }3.1415 4.1415 4.1415 3.1415 4.1415 4.1415 3.1415 3.14154. 关系运算符重载 #includeiostream using namespace std;class MyFloat { public:MyFloat(float n){N n;}//等于运算符bool operator(MyFloat myf){if (this-N myf.N){return true;}else{return false;} }//大于运算符bool operator(MyFloat myf){if (this-N myf.N){return true;}else{return false;}}float N; };int main() {MyFloat myf1(1.1415);MyFloat myf2(1.1415);MyFloat myf3(3.1415);if (myf1 myf2){cout myf1与myf2相等 endl;}if (myf3 myf2){cout myf3大于myf2 endl;} }myf1与myf2相等 myf3大于myf25. 左移运算符重载 #includeiostream using namespace std;class MyFloat {friend ostream operator(ostream cout, MyFloat myf); public:MyFloat(){N 3.1415*N1;}private:float N;float N1 float(2); };//重载左移运算符,只能利用全局函数重载。成员函数重载时会发生cout在右侧。 //ostream类只能用引用的方式声明对象。 ostream operator(ostream cout, MyFloat myf) {cout myf.N;return cout; }int main() {MyFloat myf;cout myf endl;}6.2836. 函数调用运算符重载 #includeiostream using namespace std;class MyFloat { public:MyFloat(float n){N n;}//函数调用运算符float operator()(float n1,float n2){return n1 n2;}float N; };int main() {MyFloat myf(0);float c myf(float(1.1415), float(1.1415));//与函数调用相似又称为仿函数cout c endl;cout MyFloat(0)(float(1.1415), float(1.1415)) endl;//匿名对象}
http://www.pierceye.com/news/921002/

相关文章:

  • wordpress多城市子站在线培训网站
  • 企业网站服务门户网站搬家怎么做
  • 免费浏览外国网站的软件防止访问网站文件夹
  • 长沙县政务网站公司介绍怎么写范本
  • 免费网站建设方案优化seo整体优化
  • 境外公司在国内建网站微信小程序登录平台
  • 手机网站页面模板企业网站建设相关书籍在线阅读
  • 服装网站建设内容asp网站服务建设论文
  • 开封 网站建设 网络推广如何用xshell安装wordpress
  • 河北建设工程信息网站银行外包不是人干的
  • 郑州免费做网站的襄阳品牌网站建设
  • 爱网站站长工具android软件开发下载
  • 网站被入侵宁波妇科医生推荐
  • 移动网站建设学习新能源汽车价格表2021
  • 如何做视频会员网站工商注册公司需要提供的资料
  • 网站做多久能盈利网站设计定做
  • 微信网站后台功能哪里买域名便宜
  • 合肥重点工程建设局密云seo排名优化培训
  • 二学一做网站福建建设资格执业注册管理中心网站
  • vps 网站上传做网站费用需要分摊吗
  • 建网站 考虑oou淘宝客图片wordpress模板
  • 玩具网站开发背景小说网站开发文档
  • 遵义网站设计公司制作网站需要
  • 做广告公司网站建设价格成都seo招聘
  • 网站建设与规划试卷友联互换
  • 宠物网站建设费用天元建设集团有限公司是国企吗
  • 南宁在百度上建网站网站设计怎么做链接
  • 多多进宝怎么做自己网站沈阳正规的男科医院
  • 做简历的网站叫什么软件外贸网站建设工作计划
  • 关键词搜索引擎网站公司要求做网站