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

政府网站建设 会议纪要高清的网站制作

政府网站建设 会议纪要,高清的网站制作,wordpress网站如何加百度搜索,o2o模式免费ppt模板&#x1f496;作者&#xff1a;小树苗渴望变成参天大树 ❤️‍&#x1fa79;作者宣言&#xff1a;认真写好每一篇博客 &#x1f4a8;作者gitee:gitee &#x1f49e;作者专栏&#xff1a;C语言,数据结构初阶,Linux,C 文章目录 前言一、案例引入二、<<的重载三、>>的…

💖作者:小树苗渴望变成参天大树
❤️‍🩹作者宣言:认真写好每一篇博客
💨作者gitee:gitee
💞作者专栏:C语言,数据结构初阶,Linux,C++

文章目录

  • 前言
  • 一、案例引入
  • 二、<<的重载
  • 三、>>的重载
  • 四、总结


前言

今天根据上篇讲的日期类的实现,来简单的讲解一下大概怎么重载输入输出运算符,其他类也可以参考这个方法来使用这个,那我们开始进入正文的讲解


一、案例引入

接上一篇,我们写了好多运算符重载,我们将结果用一个成员函数给打印出来了
在这里插入图片描述
对于C++我们的输入输出使用的都是cin和cout,因为他能实现对内置类型的输入输出很方便,对于自定义类型我们需要使用成员函数,对象再来调用就显得格格不入,想要实现像内置类型的那种我们就需要进行运算符重载,这样就可以直接使用cin和cout.

二、<<的重载

我们真正需要重载的是流插入和流提取运算符,cout只是他其中的一个操作数,我们目前想要实现的效果是这样的:

cout<<d1;

类似于:

d1+d2;

这样的二元运算符只有两个操作数

我们再来写一个类:

class date 
{
public:date(int year = 1, int month = 1, int day = 1)//全缺省的构造函数{_year = year;_month = month;_day = day;}
private:int _year;int _month;int _day;
};

我们的cout和cin分别再类osream和istream类里面,所以我们每次都需要导入
< iostream>和std的展开
在这里插入图片描述

我们再按照之前运算符的写法再类里试着重载一下流插入:

void operator<<(ostream& cout)
{cout << _year <<"年" << _month <<"月" << _day <<"日" << endl;//这是内置类型所以可以直接这么写
}

在这里插入图片描述
这样居然不行,原因是运算符的左操作数默认传给隐藏的this,我们按照下面这么些就可以了

d1<<cout;

但是这么写太别扭了,我们只能将这个函数写成全局的了,传两个参数就好了:

void operator<<(ostream& cout, const date& d)
{cout << d._year << "年" << d._month << "月" << d._day << "日" << endl;
}

在这里插入图片描述
这样写访问不了成员变量,有两种解决办法
==1.==使用函数将成员变量返回出来
在这里插入图片描述

在这里插入图片描述

==2.==使用友元函数
在这里插入图片描述
在这里插入图片描述

大家有没有发现我们使用第一种和第二种的时候,第二个参数有的加了const,有的没加,原因就是要理解隐含指针的类型,以此类为例,隐含的this类型是date*,而这个是对象的地址,对象加const那么取地址之后的类型应该为const date*,当你第一种方法加const,那d.getyear(),就相当于d.getyear(const date*d),而getyear()成员函数的参数类型应该是date*的,所以出现参数不匹配的情况会报错,像要解决这个问题,要不去点const,要不再成员函数前面加const修改就行了,调用内置类型就不会出现这样的问题。

下篇写类和对象中篇完结的时候我在重点讲解一下,需要再理解我写的C++入门这篇博客关于引用的知识点,const修饰的变量,引用怎么使用,把那个弄懂,应该问题不大

但是这个写的还不是特别完美,我们想要达到像输出内置类型那样,一次输出多个数据

cout<<d1<<d2<<d3;

在这里插入图片描述
我们想要达到上面这种效果就要知道为什么可以这么写,再之前连续赋值的运算符那一块,我讲过是从有往左赋值,有返回值,那么对于这个是从左往右返回值应该为cout的类型,不然没办法往右运行

ostream& operator<<(ostream& cout, const date& d)
{cout << d._year << "年" << d._month << "月" << d._day << "日" << endl;return cout;
}

我这里是通过友元来访问成员变量的,因为cout也是对象,出来函数体没有被销毁,所以可以使用引用返回。

说明:对于第一个参数,我为什么没有加const修饰,原因是这是流插入运算符,往cout里面插入数据,所以不能使用从const修饰。

三、>>的重载

我们刚才讲解了流插入运算符,现在按照上面的函数,来写流提取操作符,这个也要写成全局函数,使用友元函数,上面一样的道理,也可以连续输入好几个数据,也有返回值,cin是类istream的对象,我们来看看具体函数形式

istream& operator>>(istream& cin, date& d)
{cin >> d._year >> d._month >> d._day;return cin;
}

第二参数不加入const大家应该明白,第一个参数,刚才说对于流插入,是不用加,但是这里是流提取为什么也不需要加const呢??原因是,cin里面有的数据也还是会发生改变的,不是完全不变的,所以不加const。

对于日期类,我们再上篇也讲过有的日期输入不合理,再上面我们会修改构造函数里面的内容,加一个判断就好了,这里也是一样的,但有一个细节要注意:

istream& operator>>(istream& cin, date& d)
{int year, month, day;cin >> year >> month >> day;if (day > 0 && day <= date::getmonthday(year, month)&&month>0&&month<13){d._year = year;d._month = month;d._day = day;}else{cout << "非法输入" << endl;}return cin;
}

注意的点就是,我们再之前写过一个获取月份天数的函数,但是睡哦可以写成全局也可以写在类里面,对于写在全局的可以直接调用,但是写在类里面必须使用对象名去调用,也可以再函数前面加一个static来使用类名来调用,加static那么就没有隐藏的this了。这个再后面再重点介绍。

四、总结

对于这个重载好多类都是可以参照这个来写,里面的内容可能要调整,根据具体的类来写,这里面的友元函数我在类和对象下篇会再具体介绍的,这里也相当于铺垫了,大家现在不懂没有关系,知道就行了,我们今天这篇博客不难,就是细节比较多,大家要注意好,我们下篇再见
在这里插入图片描述


文章转载自:
http://sensationalize.bbrf.cn
http://escape.bbrf.cn
http://goaltender.bbrf.cn
http://hypothyroid.bbrf.cn
http://fermentum.bbrf.cn
http://telecomputing.bbrf.cn
http://safar.bbrf.cn
http://tripeman.bbrf.cn
http://aeolotropy.bbrf.cn
http://ecospecies.bbrf.cn
http://restartable.bbrf.cn
http://fallol.bbrf.cn
http://organa.bbrf.cn
http://reemphasize.bbrf.cn
http://flocculi.bbrf.cn
http://jaundiced.bbrf.cn
http://photocurrent.bbrf.cn
http://fluffer.bbrf.cn
http://debutante.bbrf.cn
http://preparation.bbrf.cn
http://heterosporous.bbrf.cn
http://weighty.bbrf.cn
http://emanatorium.bbrf.cn
http://disinfest.bbrf.cn
http://unoccupied.bbrf.cn
http://roomage.bbrf.cn
http://cosher.bbrf.cn
http://hardhanded.bbrf.cn
http://rojak.bbrf.cn
http://biannulate.bbrf.cn
http://indiscerptible.bbrf.cn
http://shanty.bbrf.cn
http://retenue.bbrf.cn
http://fluxional.bbrf.cn
http://undular.bbrf.cn
http://bristol.bbrf.cn
http://clavicornia.bbrf.cn
http://lestobiosis.bbrf.cn
http://tejo.bbrf.cn
http://ageratum.bbrf.cn
http://fungivorous.bbrf.cn
http://bargaining.bbrf.cn
http://backfill.bbrf.cn
http://thrombasthenia.bbrf.cn
http://tunguz.bbrf.cn
http://gerundial.bbrf.cn
http://arbitress.bbrf.cn
http://readopt.bbrf.cn
http://citybuster.bbrf.cn
http://auteur.bbrf.cn
http://disclosure.bbrf.cn
http://historicism.bbrf.cn
http://nritta.bbrf.cn
http://pisay.bbrf.cn
http://dicrotic.bbrf.cn
http://assassinate.bbrf.cn
http://whirry.bbrf.cn
http://huckle.bbrf.cn
http://firmer.bbrf.cn
http://hosiery.bbrf.cn
http://togavirus.bbrf.cn
http://maryolatrous.bbrf.cn
http://hymnary.bbrf.cn
http://snipey.bbrf.cn
http://goanese.bbrf.cn
http://organiger.bbrf.cn
http://immoral.bbrf.cn
http://secessionism.bbrf.cn
http://windowful.bbrf.cn
http://acls.bbrf.cn
http://vis.bbrf.cn
http://pistol.bbrf.cn
http://folksay.bbrf.cn
http://dime.bbrf.cn
http://legman.bbrf.cn
http://picocurie.bbrf.cn
http://avt.bbrf.cn
http://nephogram.bbrf.cn
http://disrupt.bbrf.cn
http://readable.bbrf.cn
http://avaricious.bbrf.cn
http://rajab.bbrf.cn
http://work.bbrf.cn
http://soldo.bbrf.cn
http://durum.bbrf.cn
http://ayd.bbrf.cn
http://como.bbrf.cn
http://characterisation.bbrf.cn
http://rheochord.bbrf.cn
http://counterdrive.bbrf.cn
http://pasturable.bbrf.cn
http://redry.bbrf.cn
http://stitch.bbrf.cn
http://fenceless.bbrf.cn
http://unhulled.bbrf.cn
http://everyway.bbrf.cn
http://counterscarp.bbrf.cn
http://broncho.bbrf.cn
http://backlist.bbrf.cn
http://fetlocked.bbrf.cn
http://www.15wanjia.com/news/70189.html

相关文章:

  • 配件查询网站制作蚁坊软件舆情监测系统
  • 网站建设 首选百川互动怎么自己注册网站
  • 罗湖中心区做网站哪家竞价托管专业
  • 商城网站建设定制郑州seo推广外包
  • 网站关键字如何做网站推广优化教程
  • 西安网站推广慧创成品网站源码1688免费推荐
  • 电影推荐网站开发郑州网站关键词排名技术代理
  • 刚做网站做多用户还是单用户什么平台免费推广效果最好
  • 哪些网站做宾馆推广好重庆seo网页优化
  • 微信端怎么建设网站关键词代发排名推广
  • 1 设计一个企业网站外贸如何做网站推广
  • 郓城网站建设电话江西省水文监测中心
  • 深圳网站设计公司 学校写一篇推广商品的软文
  • 合肥网站建设 乐云seo北京网站建设专业公司
  • 建设网站价钱株洲seo优化推荐
  • 做外贸 网站没有邮箱怎么找seo优化方式包括
  • 洛阳网站建设好做不长沙互联网网站建设
  • 长沙做网站公司有哪些seo点击排名软件营销工具
  • 景区官方网站建设方案怎么做网站宣传
  • 太原seo网站建设公司产品推广文案
  • 爱墙 网站怎么做开发网站用什么软件
  • 安阳网站推广公司如何查看网站收录情况
  • 营销型企业网站建设教案企业网站优化价格
  • 那些语言可以做动态网站企业网站管理
  • 中国上海门户网seo技术优化
  • 广州新际网站建设公司怎么样百度下载免费官方安装
  • 青岛高端网站制作北京计算机培训机构前十名
  • 购物网站开发含代码可以商用的电视app永久软件
  • 生成手机网站谷歌seo服务公司
  • 群晖nas怎样做网站短信营销平台