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

个人网站建设背景和目的手机软件app开发

个人网站建设背景和目的,手机软件app开发,wordpress nginx版本,个人介绍网站模板目录 赋值运算符重载 运算符重载 赋值运算符重载#xff08;赋值重载operator#xff09; 前置和后置重载 赋值运算符重载 运算符重载 C为了增强代码的可读性引入了运算符重载 #xff0c; 运算符重载是具有特殊函数名的函数 #xff0c;也具有其返回值类型#xff0c… 目录 赋值运算符重载 运算符重载 赋值运算符重载赋值重载operator 前置和后置重载 赋值运算符重载 运算符重载 C为了增强代码的可读性引入了运算符重载 运算符重载是具有特殊函数名的函数 也具有其返回值类型函数名字以及参数列表其返回值类型与参数列表与普通的函数类似。 函数名字为关键字 operator 后面接需要重载的运算符符号 。 函数原型 返回值类型  operator 操作符 ( 参数列表 ) 注意 不能通过连接其他符号来创建新的操作符比如operator 重载操作符必须有一个类类型参数 用于内置类型的运算符其含义不能改变例如内置的整型 不 能改变其含义 作为类成员函数重载时其形参看起来比操作数数目少1 因为成员函数的第一个参数为隐 藏的 this指针。 .*    ::    sizeof    ?:    . 注意以上 5 个运算符不能重载。这个经常在笔试选择题中出现 // 全局的operator class Date { public:Date(int year 1900, int month 1, int day 1){_year year;_month month;_day day;}     //private:int _year;int _month;int _day; }; // 这里会发现运算符重载成全局的就需要成员变量是公有的那么问题来了封装性如何保证 // 这里其实可以用我们后面学习的友元解决或者干脆重载成成员函数。 bool operator(const Date d1, const Date d2) {return d1._year d2._year d1._month d2._month d1._day d2._day; } void Test () {Date d1(2018, 9, 26);Date d2(2018, 9, 27);cout(d1 d2)endl; } class Date { public:Date(int year 1900, int month 1, int day 1){_year year;_month month;_day day;}// bool operator(Date* this, const Date d2)// 这里需要注意的是左操作数是this指向调用函数的对象bool operator(const Date d2){return _year d2._year; _month d2._month _day d2._day;} private:int _year;int _month;int _day; }; 赋值运算符重载赋值重载operator         1. 赋值运算符重载格式                 参数类型const T 传递引用可以提高传参效率                 返回值类型T 返回引用可以提高返回的效率有返回值目的是为了支持连续赋值                 检测是否自己给自己赋值                 返回*this 要复合连续赋值的含义 class Date { public : //构造函数Date(int year 1900, int month 1, int day 1){_year year;_month month;_day day;}//拷贝构造函数Date (const Date d){_year d._year;_month d._month;_day d._day;}//赋值重载函数Date operator(const Date d)//引用{if(this ! d)//取地址判断是否是自己给自己赋值{_year d._year;_month d._month;_day d._day;}return *this;}private:int _year ;int _month ;int _day ; };         2. 赋值运算符只能重载成类的成员函数不能重载成全局函数 class Date { public:Date(int year 1900, int month 1, int day 1){_year year;_month month;_day day;}int _year;int _month;int _day; }; // 赋值运算符重载成全局函数注意重载成全局函数时没有this指针了需要给两个参数 Date operator(Date left, const Date right) {if (left ! right){left._year right._year;left._month right._month;left._day right._day;}return left; } // 编译失败 // error C2801: “operator ”必须是非静态成员         原因赋值运算符如果不显式实现(写出来)编译器会生成一个默认的。此时用户再在类外自己实现 一个全局的赋值运算符重载就和编译器在类中生成的默认赋值运算符重载冲突了故 赋值运算符重载只能是类的成员函数。         3. 用户没有显式实现时编译器会生成一个默认赋值运算符重载以值的方式逐字节拷贝。浅拷贝         注意内置类型成员变量int ,char是直接赋值的而自定义类型成员变量需要调用对应类的赋值运算符 重载完成赋值。 class Time { public:Time(){_hour 1;_minute 1;_second 1;}Time operator(const Time t){if (this ! t){_hour t._hour;_minute t._minute;_second t._second;}return *this;} private:int _hour;int _minute;int _second; };class Date { private:// 基本类型(内置类型)int _year 1970;int _month 1;int _day 1;// 自定义类型Time _t; };int main() {Date d1;Date d2;d1 d2;return 0; }         既然编译器生成的默认赋值运算符重载函数已经可以完成字节序的值拷贝了 还需要自己实 现吗当然像日期类这样的类是没必要的。         注意 如果类中未涉及到资源管理赋值运算符是否实现都可以一旦涉及到资源管理则必 须要实现。 前置和后置重载 class Date { public:Date(int year 1900, int month 1, int day 1){_year year;_month month;_day day;}// 前置返回1之后的结果// 注意this指向的对象函数结束后不会销毁故以引用方式返回提高效率Date operator(){_day 1;return *this;}// 后置// 前置和后置都是一元运算符为了让前置与后置形成能正确重载// C规定后置重载时多增加一个int类型的参数但调用函数时该参数不用传递编译器自动传递// 注意后置是先使用后1因此需要返回1之前的旧值故需在实现时需要先将this保存一份然后给this1//而temp是临时对象因此只能以值的方式返回不能返回引用Date operator(int){Date temp(*this);_day 1;return temp;} private:int _year;int _month;int _day; };int main() {Date d;Date d1(2022, 1, 13);d d1;    // d: 2022,1,13   d1:2022,1,14d d1;    // d: 2022,1,15   d1:2022,1,15return 0; } 这个博客如果对你有帮助给博主一个免费的点赞就是最大的帮助❤ 欢迎各位点赞收藏和关注哦❤ 如果有疑问或有不同见解欢迎在评论区留言哦❤ 后续我会一直分享双一流211西北大学软件C数据结构CLinuxMySQL的学习干货以及重要代码的分享
http://www.zqtcl.cn/news/317499/

相关文章:

  • 安徽城乡建设 厅网站电子商务网站建设需要哪些步骤
  • 网站建设应该懂什么知识青岛模板网站建设
  • 免费cms建站系统有哪些网站设计项目总结
  • 做网站湖州网站后台管理系统如何使用
  • 网站建设报价单-中英文版长春省妇幼网站做四维
  • 注册网站免费网站上传小马后怎么做
  • 我省推行制度推动山西品牌建设整站优化网站
  • 临海手机网站设计网站设计 深圳
  • 网站推广做哪个比较好百度怎么优化排名
  • 做jsp网站时怎么预览wordpress安装不上
  • 网站建设深圳官网怎么制作网站镜像
  • 弹幕网站开发难么招生网站建设的意义
  • 网站空间多大合适软件开发培训机构网课
  • 13个实用平面设计网站网络推广一个月的收入
  • 淮安企业网站制作校园网网络规划与设计方案
  • html完整网站开发自媒体平台账号注册
  • 厦门seo网站网站空间 群集
  • 青岛网站推广方案营销自动化平台
  • 管理信息系统与网站建设有什么区别python版wordpress
  • 济南市建设行政主管部门网站公众号登录入口官网
  • 深圳苏州企业网站建设服务企业做网站需要什么条件
  • 电脑什么网站可以做长图攻略公众号 微网站开发
  • 网站核检单怎么用小皮创建网站
  • 企业网站托管平台有哪些烟台高新区建设局网站
  • 石家庄网站做网站和县网页定制
  • 网站个人备案和企业备案潍坊公司注册网站
  • 建个网站的流程互联网裁员
  • 设置网站模板汉口网站建设公司
  • 网站对一个关键词做排名怎么做网站建设 图纸网
  • 什么网站比较吸引流量网页设计代码td