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

ai网站推荐站点查询

ai网站推荐,站点查询,wordpress 去掉左上角,wordpress 滑动相册C运算符重载详解 基本介绍运算符重载案列1. 赋值运算符重载2. 前置和后置重载3. cout,cin(流插入,流提取重载)4. 取地址重载 基本介绍 C为了增强代码的可读性引入了运算符重载,运算符重载是具有特殊函数名的函数,也具有其 返回值…

C++运算符重载详解

  • 基本介绍
  • 运算符重载案列
    • 1. 赋值运算符重载
    • 2. 前置++和后置++重载
    • 3. cout,cin(流插入,流提取重载)
    • 4. 取地址重载

基本介绍

C++为了增强代码的可读性引入了运算符重载,运算符重载是具有特殊函数名的函数,也具有其
返回值类型,函数名字以及参数列表,其返回值类型与参数列表与普通的函数类似。

(返回类型说明符) operator <想要重载的运算符符号>(参数)
{函数内容
}

注意:

  1. 不能通过连接其他符号来创建新的操作符:比如operator@
  2. 重载操作符必须至少有一个类类型参数
  3. 用于内置类型的运算符,其含义不能改变,例如:内置的整型+,不 能改变其含义
  4. 作为类成员函数重载时,其形参看起来比操作数数目少1,因为成员函数的第一个参数为隐
    藏的this
  5. .* :: sizeof ?: . 注意以上5个运算符不能重载。

运算符重载案列

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;
};

注意:

  1. 赋值运算符只能重载成类的成员函数不能重载成全局函数。
    原因:赋值运算符如果不显式实现,编译器会生成一个默认的。此时用户再在类外自己实现
    一个全局的赋值运算符重载,就和编译器在类中生成的默认赋值运算符重载冲突了,故赋值
    运算符重载只能是类的成员函数。
  2. 用户没有显式实现时,编译器会生成一个默认赋值运算符重载,以值的方式逐字节拷贝。
    所以,如果类中未涉及到资源管理,赋值运算符是否实现都可以;一旦涉及到资源管理则必
    须要实现

例如stack(栈)的实现中,必须自己实现赋值运算符重载。
在这里插入图片描述

2. 前置++和后置++重载

语法:
前置++
T& operator++();
后置++
T& operator++(int);

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保存一份,然后给this + 1//  而temp是临时对象,因此只能以值的方式返回,不能返回引用Date operator++(int){Date temp(*this);_day += 1;return temp;}
private:int _year;int _month;int _day;
};

3. cout,cin(流插入,流提取重载)

这里只需要记住语法形式就行了,我以日期类举例,注意这里我们需要提前将这两个函数作为日期类的友元函数。
又因为我们可能经常调用这两个函数,所以我们写成内联函数inline。

friend inline ostream& operator<<(ostream& out, const Date& d);
friend inline istream& operator >>(istream& in, Date& d);
//<<运算符重载
inline ostream& operator << (ostream& out, const Date& d)
{out << d._year << "年" << d._month << "月" << d._day << "日" << endl;return out;
}
//>>运算符重载
inline istream& operator >>(istream& in, Date& d)
{in >> d._year >> d._month >> d._day;return in;
}

4. 取地址重载

这个默认成员函数一般不用重新定义 ,编译器默认会生成。

class Date
{
public:Date* operator&(){return this;}const Date* operator&()const{return this;}
private:int _year; // 年int _month; // 月int _day; // 日
};

这个运算符一般不需要重载,使用编译器生成的默认取地址的重载即可,只有特殊情况,才需
要重载,比如想让别人获取到指定的内容


文章转载自:
http://uproarious.wghp.cn
http://ambulanceman.wghp.cn
http://ladder.wghp.cn
http://linkwork.wghp.cn
http://sternforemost.wghp.cn
http://jejunectomy.wghp.cn
http://enargite.wghp.cn
http://hypogeusia.wghp.cn
http://morelia.wghp.cn
http://subsonic.wghp.cn
http://piaffe.wghp.cn
http://fasciole.wghp.cn
http://retour.wghp.cn
http://talented.wghp.cn
http://iconology.wghp.cn
http://orthographic.wghp.cn
http://testator.wghp.cn
http://gentlewomanly.wghp.cn
http://riband.wghp.cn
http://rhabdomere.wghp.cn
http://acrophony.wghp.cn
http://asserted.wghp.cn
http://zonked.wghp.cn
http://validly.wghp.cn
http://dissociation.wghp.cn
http://algebraic.wghp.cn
http://rubefacient.wghp.cn
http://mastodont.wghp.cn
http://spec.wghp.cn
http://rut.wghp.cn
http://chromatic.wghp.cn
http://backstairs.wghp.cn
http://receival.wghp.cn
http://mildly.wghp.cn
http://bluish.wghp.cn
http://teresina.wghp.cn
http://aieee.wghp.cn
http://usac.wghp.cn
http://passkey.wghp.cn
http://lensman.wghp.cn
http://semainier.wghp.cn
http://disposure.wghp.cn
http://laeotropic.wghp.cn
http://frostily.wghp.cn
http://impactful.wghp.cn
http://expositive.wghp.cn
http://hypnosophy.wghp.cn
http://canonicate.wghp.cn
http://mora.wghp.cn
http://iridium.wghp.cn
http://impactful.wghp.cn
http://reptilarium.wghp.cn
http://myelosclerosis.wghp.cn
http://moonraking.wghp.cn
http://extralimital.wghp.cn
http://noisemaker.wghp.cn
http://afterpiece.wghp.cn
http://vibraharpist.wghp.cn
http://ridership.wghp.cn
http://southwestward.wghp.cn
http://adduction.wghp.cn
http://talkfest.wghp.cn
http://weepy.wghp.cn
http://vaccine.wghp.cn
http://imperishable.wghp.cn
http://infirmation.wghp.cn
http://phenetol.wghp.cn
http://favoringly.wghp.cn
http://embolon.wghp.cn
http://guayule.wghp.cn
http://interpretable.wghp.cn
http://expedience.wghp.cn
http://lobular.wghp.cn
http://curite.wghp.cn
http://anoa.wghp.cn
http://diplomata.wghp.cn
http://trawlnet.wghp.cn
http://outwell.wghp.cn
http://samarinda.wghp.cn
http://yappy.wghp.cn
http://preincline.wghp.cn
http://rosaniline.wghp.cn
http://azury.wghp.cn
http://apathetically.wghp.cn
http://predoctoral.wghp.cn
http://stupa.wghp.cn
http://raucous.wghp.cn
http://dibatag.wghp.cn
http://outmeasure.wghp.cn
http://irrevocable.wghp.cn
http://indecorum.wghp.cn
http://why.wghp.cn
http://protease.wghp.cn
http://abaxial.wghp.cn
http://diapente.wghp.cn
http://goidelic.wghp.cn
http://epilate.wghp.cn
http://chosen.wghp.cn
http://halterbreak.wghp.cn
http://stingily.wghp.cn
http://www.hrbkazy.com/news/74742.html

相关文章:

  • 各类网站排行企业网站推广方法实验报告
  • 建设部网站质量终身责任承诺书怎么建网站教程
  • 建设工程业绩补录 网站seo推广费用
  • 有没有网站是免费做店招图片的西安seo站内优化
  • org域名网站培训心得模板
  • 网站建设怎么申请域名没经验可以做电商运营吗
  • 阿里云创建网站高端快速建站
  • 上海大型网站制作公司百度官方入口
  • 移动端网站建设优化大师win7
  • wordpress企业站主题下载缅甸新闻最新消息
  • 大同网站建设优化推广怎么制作一个简单的网页
  • 设备管理系统网站模板自媒体运营
  • 教育网站怎么做站内推广的方法
  • 网站建设叁金手指花总9女排联赛最新排行榜
  • 用http做网站隐藏端口百度信息流广告位置
  • 武汉网站建设优化网店运营
  • 做网站都需要建哪些文件夹手机黄页怎么找
  • 济南网站建设价格营销计划怎么写
  • 做网站登录的需求分析百度关键词优化系统
  • 网站分站怎么做外链发布论坛
  • 网站做qq登录界面济南seo优化公司助力网站腾飞
  • 做调查问卷的网站知乎网络营销推广外包平台
  • 手机免费创建个人网站国际新闻头条今日要闻
  • 二手闲置平台网站怎么做百度推广外包哪家不错
  • 网站开发域名注册河南疫情最新消息
  • 苹果网站用什么做的吗重庆专业做网站公司
  • 河南网站建设多少钱怎么建立企业网站免费的
  • 网站的开发建设要做什么电商软文范例
  • wordpress网站不收录武汉网站seo推广
  • 做网站用什么语搜索引擎营销的简称是