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

宁波网站制作哪家优惠多wordpress 文章排名

宁波网站制作哪家优惠多,wordpress 文章排名,wordpress链接前面的图标,软件开发项目管理系统运算符重载概述运算符重载规则友元、成员函数重载运算符运算符重载的限制 运算符重载概述 自定义的类的对象无法像基本类型的数据那样运算与输出。 运算符重载本质上就是定义一个特殊的函数,这个函数的名字就是operater加上要重载的字符,其一般的样式…
  • 运算符重载概述
  • 运算符重载规则
  • 友元、成员函数重载运算符
  • 运算符重载的限制

运算符重载概述

自定义的类的对象无法像基本类型的数据那样运算与输出。

运算符重载本质上就是定义一个特殊的函数,这个函数的名字就是operater加上要重载的字符,其一般的样式就是下面的形式:

返回类型 operator运算符(参数列表) {

    // 函数体

}

重载运算符并没有改变其原来的功能,只是增加了针对自定义数据类型的运算功能。

一下为一个例子,实现复数类重载+运算符

#include<iostream>
using namespace std;class Complex{
private:double real;double imag;
public:Complex(double real = 0,double imag = 0) : real(real),imag(imag) {}Complex operator+(const Complex& other){return Complex(real + other.real,imag + other.imag);}friend Complex operator+(const Complex& first,const Complex& second);
void display()
{cout << real;if(imag > 0)cout << "+" << imag << "i";else if(imag < 0)cout << imag << "i";cout << endl; 
}
};Complex operator+(const Complex& first,const Complex& second)
{return Complex(first.real + second.real,first.imag + second.imag);
}
int main()
{Complex c1(1,2),c2(3,-4);Complex c3 = c1 + c2;Complex c4 = c1 + c2;cout << "c1 = ";c1.display();cout << "c2 = ";c2.display();cout << "c3 = ";c3.display();cout << "c4 = ";c4.display();return 0;
}

运算符重载的方式:

有两种,分别是成员函数重载与友元函数重载

  那么什么是成员函数重载? 运算符重载函数可以作为类的成员函数,在成员的函数重载中,this指针会隐式地调用该运算符的对象,因此参数列表中的参数个数会比运算符时机操作数少一个(一元运算符无参数,二元运算符有一个参数)

//运算符重载有两种方式,一种是成员运算符重载,一种是友元函数重载
#include<iostream>
using namespace std;class Complex{
private:double real;double imag;
public:Complex(double real = 0,double imag = 0) : real(real),imag(imag) {}//成员函数重载改+运算符Complex operator+(const Complex& other) const{return Complex(real + other.real,imag + other.imag);}void display() const{cout << real;if(imag > 0) cout << " + " << imag << "i";else if(imag < 0)cout << "-" << -imag << "i";cout << endl;}
};int main()
{Complex c1(2,3),c2(4,-5);Complex c3 = c1 + c2;cout << "c1 = ";  c1.display();cout << "c2 = ";  c2.display();cout << "c3 = ";  c3.display();return 0;
}

友元函数重载:友元函数不属于类的成员函数,但是可以访问类的私有成员,使用友元函数重载时,参数列表中的参数个数和运算符的实际操作数相同。

//现在写一个友元函数的实现函数运算符重载+号
#include<iostream>
using namespace std;class Complex{
private:double real;double imag;
public:Complex(double real = 0,double imag = 0) : real(real),imag(imag) {}//友元函数重载+运算符friend Complex operator+(const Complex& c1,const Complex& c2);void display() const{cout << real;if(imag > 0)cout << "+" << imag << "i";else if(imag < 0)cout << imag << "i";cout << endl;}
};Complex operator+(const Complex& c1,const Complex& c2){return Complex(c1.real + c2.real, c1.imag + c2.imag);}int main(){Complex c1(2,3),c2(4,-5);Complex c3 = c1 + c2;cout << "c1 = "; c1.display();cout << "c2 = "; c2.display();cout << "c3 = "; c3.display();return 0;}

运算符重载的限制:

* 不能改变运算符的优先级和结合性,运算符重载只是重新定义了运算符对于自定义类型的操作行为,但不能改变运算符原有的优先级和结合性。

* 不能创造新的运算符:只能对已有的运算符进行重载,不能创建新的运算符。

* 至少有一个操作数是自定义类型:运算符重载主要是为了让自定义类型能使用运算符,因此运算符的操作数中至少有一个是自定义的类对象。 

//一个大练习实现重载+重载-重载==
#include<iostream>
using namespace std;class Point{
private:int x;int y;
public:Point(int x = 0,int y = 0) : x(x),y(y) {}//成员函数重载 + 运算符Point operator+(const Point& other) const{return Point(x + other.x,y + other.y);}//友元函数重载 - 运算符friend  Point operator-(const Point& p1,const Point& p2); //全局函数重载 == 运算符friend bool operator==(const Point& p1,const Point& p2);//输出坐标void display() const{cout << "(" << x << ", " << y << ")" << endl;}
};//友元函数实现 - 运算符
Point operator-(const Point& p1,const Point& p2){return Point(p1.x - p2.x, p1.y - p2.y);
}//全局函数实现 == 运算符
bool operator==(const Point& p1,const Point& p2){return p1.x == p2.x && p1.y == p2.y;
}
int main() {Point p1(3, 4), p2(1, 2);Point p3 = p1 + p2;Point p4 = p1 - p2;cout << "p1 = "; p1.display();cout << "p2 = "; p2.display();cout << "p3 = "; p3.display();cout << "p4 = "; p4.display();cout << "p1 " << (p1 == p2 ? "等于" : "不等于") << " p2" << endl;return 0;
}


文章转载自:

http://u6jX40a2.tkchg.cn
http://43VSxPic.tkchg.cn
http://4uXoZOV8.tkchg.cn
http://nbfJGuoe.tkchg.cn
http://LHk8gUKq.tkchg.cn
http://abPl2AXJ.tkchg.cn
http://MBC8EdHS.tkchg.cn
http://uXkTROgK.tkchg.cn
http://IUjwRXF7.tkchg.cn
http://MMiSt468.tkchg.cn
http://yXk2S4vW.tkchg.cn
http://dnb2SseO.tkchg.cn
http://u5PBDE5R.tkchg.cn
http://GIK8BVGG.tkchg.cn
http://QJj7NtCZ.tkchg.cn
http://gQTBRYxY.tkchg.cn
http://8JzvCGxW.tkchg.cn
http://DtKVCLi2.tkchg.cn
http://eVIihhsZ.tkchg.cn
http://vnozEUDw.tkchg.cn
http://3xYj1z7f.tkchg.cn
http://qUT6qBYJ.tkchg.cn
http://KJoUh575.tkchg.cn
http://M9KnZzF1.tkchg.cn
http://SH5HWa2v.tkchg.cn
http://zXXIqzVU.tkchg.cn
http://uoAUCYNw.tkchg.cn
http://h8pe8Qdd.tkchg.cn
http://T6xhEWQb.tkchg.cn
http://HmwpwiVe.tkchg.cn
http://www.dtcms.com/wzjs/624577.html

相关文章:

  • 泉州市住房与城乡建设局网站重庆网站备案
  • 团购网站建设深圳网站设计的公司
  • 中学网上做试卷的网站一流 北京网站建设
  • 网站布局结构哪家公司建设网站
  • 中山网站建设中山怎么优化网站关键词排名
  • 建设信用卡在网站挂失块吗手机好看网站模板
  • 如何创作个人网站搜索关键词热度
  • 自适应网站欣赏wordpress无中断音乐插件
  • 大型php网站系统文山做网站的地方
  • 企业网站建设课件班级优化大师头像
  • 网站发语音功能如何做做最最优秀的视频网站
  • 推广网站制作软件项目管理工作内容
  • 自己有网站怎么推广网站的漂浮广告怎么做
  • 代做网站灰色关键词品牌建设运营规划
  • 成都市金堂县网站建设北太平庄做网站公司
  • 济南网站维护沈阳市城乡建设网站
  • 河南高端网站高端网站建设wordpress 分类下的文章
  • 最好的网站设计百度搜索推广流程
  • 从化做网站4006668800人工服务几点
  • 霸州放心的网络建站wordpress怎么添加icp
  • 连锁店网站建设网站设计器
  • 网站上的vr全景是怎么做的贵港网站建设动态
  • 购物建设网站费用六安百度公司六安百度推广
  • 网站建设光盘开发软件需要什么
  • 开封市建设中专网站青岛制作网站
  • 网站开发培训网哪里的赣州网站建设
  • wordpress实名认证发帖seo服务
  • 做网站需要什么基础手机可视化编程软件
  • 有关网站备案号规则wordpress 新建php页面模板
  • 班级网站页面设计北京的广告公司有哪些