办个人网站租空间怎么选择赣州网站建设

bicheng/2026/1/23 8:40:52/文章来源:
办个人网站租空间,怎么选择赣州网站建设,用织梦后台修改网站logo,设计网站多少钱1.运算符重载 • 当运算符被⽤于类类型的对象时#xff0c;C语⾔允许我们通过运算符重载的形式指定新的含义。C规定类类型对象使⽤运算符时#xff0c;必须转换成调⽤对应运算符重载#xff0c;若没有对应的运算符重载#xff0c;则会编译报错#xff1b;#xff08;运算…1.运算符重载 • 当运算符被⽤于类类型的对象时C语⾔允许我们通过运算符重载的形式指定新的含义。C规定类类型对象使⽤运算符时必须转换成调⽤对应运算符重载若没有对应的运算符重载则会编译报错运算符重载转化成一个函数 • 运算符重载是具有特别名字的函数他的名字是由operator关键字和后⾯要定义的运算符共同构成。和其他函数⼀样它也具有其返回类型和参数列表以及函数体格式operator运算符 构成函数名 • 重载运算符函数的参数个数和该运算符作⽤的运算对象数量⼀样多⼀元运算符有⼀个参数⼆元运算符有两个参数⼆元运算符的左侧运算对象传给第⼀个参数右侧运算对象传给第⼆个参数/- -/*(解引用)/.....就是一元 • 如果⼀个重载运算符函数是成员函数则它的第⼀个运算对象默认传给隐式的this指针因此运算符重载作为成员函数时参数⽐运算对象少⼀个 • 运算符重载以后其优先级和结合性与对应的内置类型运算符保持⼀致 #includeiostream using namespace std; class Date { public:Date(int year 1, int month 1, int day 1){_year year;_month month;_day day;}void Print(){cout _year / _month / _day endl;}//Get函数int Get_year(){return _year;}int Get_month(){return _month;}int Get_day(){return _day;}//因为存在this指针所以应当少一个bool operator(Date d2){return _year d2._year _month d2._month _day d2._day;} private:int _year;int _month;int _day;//自定义类型怎么去比较他的行为应该是我们自己去定义的而不是系统去定义的 }; //比较大小的返回值是一个bool值 bool operator(Date d1, Date d2) {}//重载成全局的方式是最正的二元的左操作数传给第一个参数右操作数传给第二个参数 //bool operator(Date d1, Date d2) //{ // return d1._year d2._year // d1._month d2._month // d1._day d2._day; // //没有访问权限1可以直接将private的内容包含于public // //·······2提供Get函数 // //·······3友元 // //·······4放在类里面成为成员函数 //}int main() {Date x1(2024, 7, 16);Date x2(2024, 7, 16);到底是x1对应d1,还是d2可以显现调用跟一个普通函数一样//operator(x1, x2);还可以//x1 x2;//全局的和成员的都有会优先调用成员的//改后x1.operator(x2);x1 x2;return 0; } • 不能通过连接语法中没有的符号来创建新的操作符/运算符⽐如operator •   .*       : :     sizeof       ?:     .  注意以上5个运算符不能重载。(选择题⾥⾯常考⼤家要记⼀下)重载操作符⾄少有⼀个类类型参数不能通过运算符重载改变内置类型对象的含义如 int operator(int x, int y) .* 案例 #includeiostream using namespace std; class A { public:void func(){cout A::func() endl;} }; //用回调的方式去调用成员函数的指针 //普通函数指针void(*)(); typedef void(A::* PF)(); //成员函数指针类型 int main() {//void(A:: * PF)() nullptr;PF pf nullptr;//实现回调// C规定成员函数要加才能取到函数指针pf A::func;//普通的全局的函数是可以回调的//(*pf)();//成员函数回调不了因为有隐含的this指针//要调用函数指针要传隐含的this指针这个实参A aa;//(*pf)(aa);//这样也不行因为this指针在形参和实参的位置不能显示//C规定回调成员函数的指针要这么回调(aa.*pf)();//aa就悄悄传给this } • ⼀个类需要重载哪些运算符是看哪些运算符重载后有意义⽐如Date类重载operator-就有意 义天数但是重载operator就没有意义 日期加日期没有意义不会构成重载又因为没有要求运算符两边必须要同类型而是只要求至少有一个类类型的参数 d1 100;//100天后日期是多少 d1 - 100;//100天前日期是多少 d1 - d2;//间隔天数 运算符重载 //d1100 Date operator(int day); //d1-100 Date operator-(int day); //d1-d2 int operator-(const Date d); 注运算符重载和函数重载都用了重载但他们没有关系函数重载是函数名相同参数不同运算符重载是重新定义运算符的行为另外两个运算符重载函数可以构成函数重载 • 重载运算符时有前置和后置运算符重载函数名都是operator⽆法很好的区分 C规定后置重载时增加⼀个int形参跟前置构成函数重载⽅便区分 • 重载和时需要重载为全局函数因为重载为成员函数this指针默认抢占了第⼀个形参位 置第⼀个形参位置是左侧运算对象调⽤时就变成了 对象cout不符合使⽤习惯和可读性。 重载为全局函数把ostream/istream放到第⼀个形参位置就可以了第⼆个形参位置当类类型对 象 2.赋值运算符重载 赋值运算符重载是⼀个默认成员函数⽤于完成两个已经存在的对象直接的拷⻉赋值这⾥要注意跟拷⻉构造区分拷⻉构造⽤于⼀个对象拷⻉初始化给另⼀个要创建的对象 int main() {Date d1(2024, 7, 5);Date d2(2024, 7, 6);//赋值重载拷贝d1 d2;//拷贝构造Date d3(d2);Date d4 d2;return 0; } 赋值运算符重载的特点 1. 赋值运算符重载是⼀个运算符重载规定必须重载为成员函数不可以是全局。赋值运算重载的参数建议写成 const 当前类类型引⽤否则会传值传参会有拷⻉ void operator(const Date d) {//尽管用传值传参不会产生所谓的无穷递归现在是赋值重载传值传参把d2传给d调用拷贝构造调用完回来了接着调用赋值//operator赋值//但是建议用引用_year d._year;_month d._month;_day d._day; }bool operator(const Date d) {//拷贝构造赋值重载拷贝去传值传参形成新的拷贝构造。。。。。无穷递归//operator等于 } 因为拷贝构造和复制重载两者本来就不一样  2. 有返回值 且建议写成当前类类型引⽤引⽤返回可以提⾼效率 有返回值⽬的是为了⽀持连赋值场景 Date operator(const Date d) {_year d._year;_month d._month;_day d._day;//d3d1//this是d3的地址return *this;//类里面可以显示写 } 优化传值返回也会生成一个拷贝就调用拷贝构造白白生成一个拷贝付出了代价用印用来解决提高效率 Date operator(const Date d) {_year d._year;_month d._month;_day d._day;return *this; } 3. 没有显式实现时编译器会⾃动⽣成⼀个默认赋值运算符重载默认赋值运算符重载⾏为跟默认的拷贝构造函数类似对内置类型成员变量会完成值拷⻉/浅拷⻉(⼀个字节⼀个字节的拷⻉)对⾃定义类型成员变量会调⽤他的赋值重载 4. 像Date这样的类成员变量全是内置类型且没有指向什么资源编译器⾃动⽣成的赋值运算符重载就可以完成需要的拷⻉所以不需要我们显⽰实现赋值运算符重载。像Stack这样的类虽然也都是内置类型但是_a指向了资源编译器⾃动⽣成的赋值运算符重载完成的值拷⻉/浅拷⻉不符合我们的需求所以需要我们⾃⼰实现深拷⻉(对指向的资源也进⾏拷⻉)。像MyQueue这样的类型内部主要是⾃定义类型Stack成员编译器⾃动⽣成的赋值运算符重载会调⽤Stack的赋值运算符重载也不需要我们显⽰实现MyQueue的赋值运算符重载。这⾥还有⼀个⼩技巧如果⼀个类显⽰实现了析构并释放资源那么他就需要显⽰写赋值运算符重载否则就不需要 3.日期类实现 补充两个日期间隔多少天有算正负数-----算法图解 另外还可以尽可能复用逻辑代码中会演示到取小日期比较大小让小的日期不断真到与大日期相等不过相比于上图方法会相对慢但cpu太快了无所谓 代码 头文件Date.h #pragma once #includeiostream using namespace std; #includeassert.h class Date {//我和小笨蛋不认识所以不可以去他家玩但我很想去因为他爸爸会数分就给小笨蛋吹彩虹屁就和他成为朋友了//友元声明friend函数声明friend ostream operator(ostream out, const Date d);friend istream operator(istream in, Date d); public:bool CheckDate();Date(int year 1900, int month 1, int day 1);void Print()const;//频繁调用的小函数//没有做声明和定义分离 因为定义在类里面的成员函数默认是内联inlineint GetMonthDay(int year, int month){//防止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 % 100 ! 0 year % 4 0) || (year % 400 0)){return 29;}return monthDayArray[month];}bool operator(const Date d)const;bool operator(const Date d)const;bool operator(const Date d)const;bool operator(const Date d)const;bool operator(const Date d)const;bool operator!(const Date d)const;Date operator(int day)const;Date operator(int day);Date operator-(int day)const;Date operator-(int day);d1//Date operator();d1//Date operator();//这么区分这两个d1,d1:重载运算符时有前置和后置运算符重载函数名都是operator⽆法很好的区分。//C规定后置重载时增加⼀个int形参跟前置构成函数重载⽅便区分。//d1:后置Date operator(int);//d1:前置Date operator();Date operator--(int);Date operator--();//d1-d2int operator-(const Date d);//printf与scanf他们直接适应的是内置类型//流插入之所以可以自定识别类型是因为本质是函数重载//void operator(ostream out);//写成成员函数是为了访问私有但是这个实现形式倒反天罡 private:int _year;int _month;int _day; };//全局 //流插入 ostream operator(ostream out, const Date d); //用友元声明让类外面的函数访问类里面的元素 //可是连续输出又不行EGcoutd1d2 //流插入是从左到右(赋值相反)所以应该返回out//流提取 istream operator(istream in, Date d);//提取的值要放到Date对象中所以不加const 源文件Date.cpp #includeDate.h bool Date::CheckDate() {if (_month 1 || _month 12|| _day 1 || _day GetMonthDay(_year, _month)){return false;}else{return true;} }Date::Date(int year, int month, int day) {_year year;_month month;_day day;if (!CheckDate()){cout 非法日期 endl;Print();} } void Date::Print() const {cout _year - _month - _day endl; } //这是会改变_day Date Date::operator(int day) {//有坑当day为负数时// 解决if (day 0){return *this - (-day);}//与加法进数一样天满了往月上进位月满了往年进位_day day;while (_day GetMonthDay(_year, _month)){_day - GetMonthDay(_year, _month);_month;if (_month 13){_year;_month 1;}}return*this; } //d1100:不会改变d1 Date Date::operator(int day)const {//拷贝构造的场景Date tmp *this;//就会往tmp上走/*tmp._day day;while (tmp._day GetMonthDay(tmp._year, tmp._month)){tmp._day - GetMonthDay(tmp._year, tmp._month);tmp._month;if (tmp._month 13){tmp._year;tmp._month 1;}}*///复用tmp day;return tmp;//tmp为局部对象出了作用域销毁不能用引用返回即使会多进行一次拷贝 }Date Date:: operator-(int day) {if (day 0){return *this (-day); }_day - day;while (_day 0){_month--;if (_month 0){_month 12;}_day GetMonthDay(_year, _month);}return *this; }Date Date:: operator-(int day)const {Date tmp *this;/*tmp._day - day;while (tmp._day 0){tmp._month--;if (tmp._month 0){tmp._month 12;}tmp._day GetMonthDay(tmp._year, tmp._month);}*/tmp - day;return tmp; }d1-100 用-实现-d1改变 //Date Date:: operator-(int day) //{ // /*Date tmp *this - day; // *this tmp;*/ // *this *this - day; // return *this; //}//其实-复用-更好因为-的效率本身是更低的 // //Date tmp *this;是一次拷贝return *this 传值返回也是一次拷贝 //-复用-或-复用-在“-”中都要进行两次构造所以真正的区别在于- //如果-是自己实现全程没有拷贝 //但是-去复用-就会加上-带来的两次拷贝和多加的赋值拷贝很亏//至少实现或 bool Date:: operator(const Date d)const {if (_year d._year){return true;}else if (_year d._year){if (_month d._month){return true;}else if (_month d._month){return _day d._day;}}return false; } //d1d2 bool Date:: operator(const Date d)const {return *this d || *this d; } bool Date:: operator(const Date d)const {/*if (_year d._year){return true;}else if (_year d._year){if (_month d._month){return true;}else if (_month d._month){return _day d._day;}}return false;*/return !(*this d); } bool Date:: operator(const Date d)const {return !(*this d); } bool Date:: operator(const Date d)const {return _year d._year _month d._month _day d._day; } bool Date:: operator!(const Date d)const {return !(*this d); }//d1 //d1.operator(0); Date Date::operator(int) {Date tmp *this;*this 1;return tmp; }//d1 //d1.operator(); 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; }//天数的实现 int Date:: operator-(const Date d) {int flag 1;int n 0;//假设法Date max *this;Date min d;if (*this d){max d;min *this;flag -1;}while (min ! max){min;n;}return n * flag; }//倒反天罡 //void Date::operator(ostream out) //{ // //out就是cout // //对于二元函数默认左操作数对应第一个参数 // out _year 年 _month 月 _day 日 endl; // //要这么配得上d1out//d1.operator(cout) //}//因为流对象中含有指向IO缓冲区的指针假如流对象可以复制那么将会有两个指针同时操作缓冲区如何释放、如何修改都会有冲突同步问题因此流对象无法复制。 ostream operator(ostream out, const Date d) {out d._year 年 d._month 月 d._day 日 endl;return out; }istream operator(istream in, Date d) {while (1){cout 请依次输入年月日:;in d._year d._month d._day;//在进行流提取是cout的buffer刷新了be flushed了if (!d.CheckDate()){cout 输入日期非法;d.Print();cout 请重新输入 endl;}else{break;}}return in; }

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/87551.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

聊城网站建设哪个好wordpress编辑用户头像

摘要: 本笔记分析了使用预训练的模型生成文本的示例代码。它的步骤如下: 使用已加载的分词器 tokenizer 对输入文本进行处理,转换为模型可以理解的格式。输入文本是国家和首都的信息,最后一句是未完成的,需要模型来生成。将处理后的输入转移到模型所在的设备上(例如GPU或…

网站logo是什么意思潘虎设计公司

mac还是使用brew install简单一些;最好使用一种安装方式,不要多种方式互用; 更新npm到最新版本npm install -g npm更新npm到指定版本 npm -g install npm2.9.1指定安装目录npm install --prefix /usr/local -g npm 1、从官网https://nodejs.o…

做互联网交易网站的条件建立网站需要注意什么

《C新经典设计模式》之第19章 职责链模式 职责链模式.cpp 职责链模式.cpp #include <iostream> #include <memory> #include <string> using namespace std;// 请求传递给链中的若干对象&#xff0c;哪个对象适合处理就自行处理 // 使多个对象都有机会处理请…

最便宜的网站建设WordPress图片方案

AI 使用大型语言模型&#xff08;LLM&#xff09;来理解和生成自然语言。LLM 可以从大量文本中学习并创建有关各种主题的文本&#xff0c;并可以完成比如编写代码、生成歌词、总结文章等任务。但有些 LLM 相关课程成本高昂且封闭&#xff0c;而现有的开放课程数量十分有限。这就…

成都创新互联科技有限公司长沙seo推广营销

一&#xff1a;背景 一直在用 WinDbg 调试用户态程序&#xff0c;并没有用它调试过 内核态&#xff0c;毕竟不是做驱动开发&#xff0c;也没有在分析 dump 中需要接触用内核态的需求&#xff0c;但未知的事情总觉得很酷&#xff0c;加上最近在看 《深入解析 Windows 操作系统》…

微信制作网站设计wordpress网站换域名

1 教学实训总体设计 1.1 建设背景 &#xff08;一&#xff09;政策推动与战略部署 近年来&#xff0c;物联网技术在全球范围内得到了广泛的关注和应用。作为信息技术的重要组成部分&#xff0c;物联网在推动经济转型升级、提升社会管理水平、改善民生福祉等方面发挥着重要作…

网站中的宣传册翻页动画怎么做在深圳注册公司流程及费用

目录 一、网络配置命令 1.ifconfig——IP地址 1.1ifconfig的基础用法 1.1.1ifconfig命令详解 1.2常用格式 1.3修改网卡名称 1.3.1临时修改 1.3.2永久修改 1.4临时修改网卡 1.4.1设置虚拟网卡 1.4.2延伸——ethtool 1.5永久修改网卡 1.6实验 —— 双网卡配置 1.…

青岛php网站建设网站怎样做关键词优化

参考资料&#xff1a;用python动手学统计学 1、t统计量 t统计量的计算公式为&#xff1a; 其中&#xff0c;为样本均值&#xff0c;μ为总体均值&#xff0c;为实际样本的无偏标准差&#xff0c;N为样本容量。 t统计量的公式与标准化公式类似。t统计量可以理解为对样本均值…

wordpress网站静态化在线查看网站源码

实验五&#xff1a;AAAI 会议论文聚类分析 ​ 本次实验以AAAI 2014会议论文数据为基础&#xff0c;要求实现或调用无监督聚类算法&#xff0c;了解聚类方法。 1 任务介绍 ​ 每年国际上召开的大大小小学术会议不计其数&#xff0c;发表了非常多的论文。在计算机领域的一些大…

如何查看vs中建设好的网站开通招聘网站如何做分录

2023年8月30日&#xff0c;EESA第二届中国国际储能展览会在苏州国际博览中心拉开帷幕&#xff0c;科士达以“零碳光储数能未来”为主题&#xff0c;亮相G3-20展台&#xff0c;多维度展现户用光储、工商业储能、大型储能等解决方案&#xff0c;彰显安全、高效、可靠的产品性能和…

一起做网站广州下载中心官方网站建设银行

1、匿名对象 匿名&#xff1a;没有名字 生活层面&#xff1a;匿名投票、匿名信... 程序层面&#xff1a; 有名对象和匿名对象 有名对象&#xff1a; 理解&#xff1a;有名字的对象 模板&#xff1a; 数据类型 对象名 new 数据类型(...); 匿名对象&#xff1a; 理…

关于网站建设的好处网站建设教程主页

本人详解 作者:王文峰,参加过 CSDN 2020年度博客之星,《Java王大师王天师》作者 公众号:山峯草堂,非技术多篇文章,专注于天道酬勤的 Java 开发问题、中国国学、传统文化和代码爱好者的程序人生,期待你的关注和支持!本人外号:神秘小峯 转载说明:务必注明来源(注明:…

天津平台网站建设推荐北京百度seo排名点击软件

1 命名规范 1.1 Go是一门区分大小写的语言。 命名规则涉及变量、常量、全局函数、结构、接口、方法等的命名。 Go语言从语法层面进行了以下限定&#xff1a;任何需要对外暴露的名字必须以大写字母开头&#xff0c;不需要对外暴露的则应该以小写字母开头。 当命名&#xff08…

淄博企业网站建设网页升级紧急通知区域

这是我去额尔古纳的公路上&#xff0c;隔着车窗拍摄的照片。三幅照片可以感觉时间的变化&#xff0c;从午后到黄昏&#xff0c;光和色彩逐渐朦胧凝重&#xff0c;像蒙古画家朝戈的油画。这样的景象在草原上随处可见。沙石路只有在草原的深处可以见到&#xff0c;坐在车里身体会…

.net开发网站的优点网站建设广告平台推广

Python2 与 Python3 print 不换行 分类 编程技术 本文主要介绍在 Python2 与 Python3 下 print 实现不换行的效果。 Python 3.x 在 Python 3.x 中&#xff0c;我们可以在 print() 函数中添加 end"" 参数&#xff0c;这样就可以实现不换行效果。 在 Python3 中&a…

游戏网站建设视频教程老网站做seo能不能重新注册

我最近读了一个非常聪明的技巧来完成你所要求的工作。简而言之&#xff0c;你只需要使用text-align&#xff1a;justify;在容器元素上实现这一点&#xff0c;结合一个额外的不可见块。这是因为内联块元素被视为文本内容的一部分&#xff0c;每个元素实际上是单个单词。使用对齐…

苏州建设公司网站建设奇迹网站架设视频

反转单链表 题目描述 题目分析 先来说迭代的思想&#xff1a; 上面next cur->next应该放在cur->next pre前面执行&#xff0c;这里笔误 再来说递归的思想&#xff1a; 题目代码 这个代码里面我加了我自己写的测试数据&#xff0c;自己可以去找对应的部分&#xff0c…

机场建设相关网站站长工具网站排名

前言 只要你的小程序超过一个页面那么可能会需要涉及到页面参数的传递&#xff0c;下面我总结了 4 种页面方法。 路径传递 通过在url后面拼接参数&#xff0c;参数与路径之间使用 ? 分隔&#xff0c;参数键与参数值用 相连&#xff0c;不同参数用 & 分隔&#xff1b;如…

上海市普陀区建设规划局网站长沙如何优化排名

目录 一、防火墙基本认识 1. 安全技术 2. 防火墙分类 3. 防火墙工具介绍 二、iptables 1. 概述 2. 五表五链 3. 语法 3.1 基本语法 3.2 语法总结 4. 管理选项 5. 通用匹配 6. 控制类型 7. iptables应用 7.1 新增防火墙规则 7.2 查看规则表 7.3 黑白名单 7.4 …

进入网站后台ftp空间后怎样上传wordpress建的网站吗

1 花盆 是高度比较低的盆&#xff0c;只有一个下2&#xff1b;上面分两个 1 2 盆边缘颜色深&#xff0c;上面靠近外面的颜色浅&#xff0c;正面颜色稍微深一点&#xff0c;画两条竖的浅色线&#xff0c;作为装饰 2 花盆中的沙石 沙子颜色深一点&#xff0c;中间有浅一点的线…