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

花都移动网站建设专业的网上购物平台

花都移动网站建设,专业的网上购物平台,货代怎么找客户,国外html5网站建设研究现状运算符重载 • 当运算符被⽤于类类型的对象时#xff0c;C语⾔允许我们通过运算符重载的形式指定新的含义。C规定类类型对象使⽤运算符时#xff0c;必须转换成调⽤对应运算符重载#xff0c;若没有对应的运算符重载#xff0c;则会编译报错。 • 运算符重载是具有特名字的…运算符重载 • 当运算符被⽤于类类型的对象时C语⾔允许我们通过运算符重载的形式指定新的含义。C规定类类型对象使⽤运算符时必须转换成调⽤对应运算符重载若没有对应的运算符重载则会编译报错。 • 运算符重载是具有特名字的函数他的名字是由operator和后⾯要定义的运算符共同构成。和其他函数⼀样它也具有其返回类型和参数列表以及函数体。 • 重载运算符函数的参数个数和该运算符作⽤的运算对象数量⼀样多。⼀元运算符有⼀个参数⼆元 运算符有两个参数⼆元运算符的左侧运算对象传给第⼀个参数右侧运算对象传给第⼆个参数。 • 如果⼀个重载运算符函数是成员函数则它的第⼀个运算对象默认传给隐式的this指针因此运算符重载作为成员函数时参数⽐运算对象少⼀个。 • 运算符重载以后其优先级和结合性与对应的内置类型运算符保持⼀致。 • 不能通过连接语法中没有的符号来创建新的操作符⽐如operator。 • .* :: sizeof ?: . 注意以上5个运算符不能重载。(选择题⾥⾯常考⼤家要记⼀下) • 重载操作符⾄少有⼀个类类型参数不能通过运算符重载改变内置类型对象的含义如 int operator(int x, int y) • ⼀个类需要重载哪些运算符是看哪些运算符重载后有意义⽐如Date类重载operator-就有意 义但是重载operator就没有意义。 • 重载运算符时有前置和后置运算符重载函数名都是operator⽆法很好的区分。 C规定后置重载时增加⼀个int形参跟前置构成函数重载⽅便区分。 • 重载和时需要重载为全局函数因为重载为成员函数this指针默认抢占了第⼀个形参位 置第⼀个形参位置是左侧运算对象调⽤时就变成了对象cout不符合使⽤习惯和可读性。 重载为全局函数把ostream/istream放到第⼀个形参位置就可以了第⼆个形参位置当类类型对 象。 取地址运算符重载 • 将const修饰的成员函数称之为const成员函数const修饰成员函数放到成员函数参数列表的后⾯。 • const实际修饰该成员函数隐含的this指针表明在该成员函数中不能对类的任何成员进⾏修改。 const修饰Date类的Print成员函数Print隐含的this指针由 Date* const this 变为 const Date* const this 取地址运算符重载分为普通取地址运算符重载和const取地址运算符重载⼀般这两个函数编译器⾃动⽣成的就可以够我们⽤了不需要去显⽰实现。除⾮⼀些很特殊的场景⽐如我们不想让别⼈取到当前类对象的地址就可以⾃⼰实现⼀份胡乱返回⼀个地址 日历代码 头文件 #pragma once #includeassert.h #includeiostream using namespace std; class Date {friend ostream operator(ostream out, const Date p);friend istream operator(istream in,Date p); public:Date(int year, int month, int day);void Print(void);bool CheckDate(){if (_month 1 || _month12 || _day1 || _day GetMonthDay(_year, _month)){return false;}else{return true;}}int GetMonthDay(int year, int month){assert(month 0 month 13);static int monthDayArray[13] { -1,31,28,31,30,31,30,31,31,30,31,30,31 };if (month 2 (year % 4 0 year % 100 ! 0) || (year % 400 0)){return 29;}else{return monthDayArray[month];}}bool operator(const Date d);bool operator(const Date d);bool operator(const Date d);bool operator(const Date d);bool operator(const Date d);bool operator!(const Date d);Date operator(int day);Date operator(int day);Date operator-(int day);Date operator-(int day);Date operator();Date operator(int);Date operator--();Date operator--(int);//void operator(ostream out);int operator-(const Date d);private:int _year;int _month;int _day; };ostream operator(ostream out,const Date p); istream operator(istream in,Date p);功能代码 #define _CRT_SECURE_NO_WARNINGS #include Date.hDate::Date(int year 2000, int month 1, int day 1) {_year year;_month month;_day day;if (!CheckDate()){cout error endl;cout *this;} }void Date::Print() {cout _year - _month - _day endl; }bool Date::operator(const Date d) {if (_year d._year){return true;}else if (_year d._year _month d._month){return true;}else if (_year d._year _month d._month _day d._day){return true;}return false; }bool Date::operator(const Date d) {return !(*this d); }bool Date::operator(const Date d) {return !(*this d); }bool Date::operator(const Date d) {return *this d || *this d; }bool Date::operator!(const Date d) {return !(*this d); }bool Date::operator(const Date d) {return _year d._year _month d._month _day d._day; }Date Date::operator(int day) {Date tmp *this;tmp day;return tmp; } Date Date::operator(int day) {_day day;while (_day GetMonthDay(_year, _month)){_day - GetMonthDay(_year, _month);_month;if (_month 13){_year;_month 1;}}return (*this); }Date Date::operator-(int day) {_day - day;while (_day 0){--_month;if (_month 0){_month 12;--_year;}_day GetMonthDay(_year, _month);}return *this; } Date Date::operator-(int day) {Date tmp *this;tmp - day;return tmp; }Date Date::operator() {*this 1;return *this; } Date Date::operator(int) {Date tmp *this;*this 1;return tmp; }Date Date::operator--() {*this - 1;return *this; } Date Date::operator--(int) {Date tmp *this;*this - 1;return tmp; }int Date::operator-(const Date d) {Date max *this;Date min d;int flag 1;if (*this d){max d;min *this;flag -1;}int n 0;while (min ! max){min;n;}return n * flag; }istream operator(istream in,Date p) {while(1){cout year month day;in p._year p._month p._day;if (p.CheckDate()){break;}else{cout error endl;}}return in; } ostream operator(ostream out,const Date p) {out p._year 年 p._month 月 p._day endl;return out; }
http://www.tj-hxxt.cn/news/143939.html

相关文章:

  • 山东建设厅科技处网站wordpress插件库
  • 安徽省建设工程安全 协会网站seo优化技术培训中心
  • 百度统计网站网线制作的注意事项
  • 如何用jeecg建设网站wordpress如何设置关键词和描述
  • 江西省住房城乡建设厅网站工程建设数字化管理平台app下载
  • seo 网站结构多个网站 备案吗
  • 深圳网站建设 设计首选深圳市百度包头网站建设
  • 学校网站制作大悟网站制作
  • 网站色调设计方案中山 网站建设
  • 做网站大概一个月多少工资设计素材网址
  • 化妆品商城网站建设策划方案ppt在线预览wordpress
  • 乐清做网站的公司有哪些优秀网站设计赏析
  • 厂房建设招标网站博客营销是一种新兴的网络营销方式
  • 上海市建设三类人员报名网站wordpress本地打开
  • 舟山外贸建站公司公网带宽1m能建设电商网站吗
  • 无锡公司建立网站wordpress付费文章插件
  • 海南省住建设厅网站报监的工程抖音seo排名优化公司
  • 网站设计素材图片aso排名
  • 诸暨制作网站的公司有哪些毕设网站代做一般预算多少钱
  • 网站建设公司找上海站霸杭州网络游戏公司排名
  • 网站制作需要多少钱kwordpress的导航代码
  • 营销网站设计上海天气北京南站地铁几号线
  • 贸易网站模板企业信用信息查询公示系统河北
  • 怎么在网上卖东西视频淄博seo方案
  • 专业设计网址青岛网站开发高性能网站建设进阶指南
  • 重庆 网站 建设静乐县城乡建设局网站
  • 怎么样提升网站权重wordpress 导航网站模板下载
  • 策划对于企业网站建设来说北海涠洲岛旅游网站建设分析
  • 深圳建设局网站宝安分中心苏州关键词优化平台
  • 长春做网站的公司山西高端建设网站