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

找简历的网站群排名优化软件

找简历的网站,群排名优化软件,cms开源框架,郑州网站建设tpywlkj一、什么是运算符重载 简单来讲就是对运算符赋予新的意义,但是又不能改变原有的含义,它本身也就是一个函数。运算符重载的本质是以函数的方式来体现。 二、运算符重载有几种 1、按照作用域来划分,有全局操作符重载函数和成员函数操作符重载函…

一、什么是运算符重载

        简单来讲就是对运算符赋予新的意义,但是又不能改变原有的含义,它本身也就是一个函数。运算符重载的本质是以函数的方式来体现。

二、运算符重载有几种

        1、按照作用域来划分,有全局操作符重载函数和成员函数操作符重载函数。

        2、按照操作数个数来划分,有单目运算符重载和双目运算符重载。

        通常来讲,往往把输入流和输出流运算符改写为全局操作符重载函数,普通的运算符改写为成员函数操作符重载函数。如果想要使用成员函数来重载输出流《 和 输入流》,必须在C++库中对应的类加入这个重载的成员函数,不建议使用。

三、运算符重载的特性

        1、不能新增运算符,只能对已有的C++运算符进行重载。

        2、不能改变操作数的个数,运算符重载后仍是原有操作数个数。

        3、尽量不改变语义,应当使重载运算符功能是类似相同。

        4、并不是所有的运算符都可以重载,以下5个运算符不能重载作用域运算符::,成员访问运算符.,类型长度运算符sizeof(),成员指针运算符.*,条件运算符?:

四、怎么实现运算符重载

        采用普通函数的调用方式来调用运算符重载函数,基本语法如下:

// 关键字operator不能省略
// 函数名:operator 运算符
// 参数列表:操作数的个数受原有运算符的操作数个数限定返回值 operator 运算符(参数列表)
{// 重载函数体
}

五、案例

        1、运算符重载的简单使用

#include <iostream>using namespace std;// 复数类
class Complex
{
private:int a;  // 实部int b;  // 虚部
public:Complex(int a = 0, int b = 0){this->a = a;this->b = b;}void show(){if(b < 0){cout << a << b << "i" << endl;}else{cout << a << "+" << b << "i" << endl;}}// 重载运算符+Complex& operator + (const Complex& op){static Complex temp;temp.a = this->a + op.a;temp.b = this->b + op.b;return temp;}// 重载运算符-Complex& operator - (const Complex& op){static Complex temp;temp.a = this->a - op.a;temp.b = this->b - op.b;return temp;}// 重载运算符*Complex& operator * (const Complex& op){static Complex temp;temp.a = this->a*op.a - this->b*op.b;temp.b = this->a*op.b + this->b*op.a;return temp;}// 重载运算符 / Complex& operator / (const Complex& op){static Complex temp;int x = op.a*op.a + op.b*op.b;temp.a = (this->a*op.a + this->b*op.b)/x;temp.b = (this->b*op.a - this->a*op.b)/x;return temp;}bool operator == (const Complex& op){return (this->a == op.a && this->b == op.b);}};int main()
{Complex A(1, 2);Complex B(1, 2);if(A == B){cout << "A == B" << endl;}Complex C = A + B;cout << "C = ";C.show();Complex D = A - B;cout << "D = ";D.show();Complex E = A * B;cout << "E = ";E.show();Complex F = A / B;cout << "F = ";F.show();return 0;
}

        2、全局操作符重载示例

#include <iostream>using namespace std;// 复数类
class Complex
{
private:int a;  // 实部int b;  // 虚部
public:Complex(int a = 0, int b = 0){this->a = a;this->b = b;}void show(){if(b < 0){cout << a << b << "i" << endl;}else{cout << a << "+" << b << "i" << endl;}}// 全局操作符重载,重载输入流和输出流,为了方便通常声明friend友元函数friend ostream& operator << (ostream & output, const Complex & other);friend istream& operator >> (istream & input,  Complex & other);};
// 可以改为以下定义,但是后面不能连续输入对象,即cout<< A << endl;是非法的,只能cout << A;
// void operator << (ostream & output, const Complex & other)ostream& operator << (ostream & output, const Complex & other)
{if(other.b < 0){output << other.a << other.b << "i";}else{cout << other.a << "+" << other.b << "i";}return output;}// 可以改为以下定义,但是后面不能连续输入对象,即cin>>A>>B;是非法的,只能cin>>A; cin>>B;
// void operator >> (istream & output, const Complex & other)
istream& operator >> (istream & input,  Complex & other)
{input >> other.a >> other.b;return input;
}int main()
{Complex A;Complex B;cin >> A >> B;  // 可以连续输入类对象cout << "A = ";A.show();cout << "B = " << B << endl;return 0;
}

        3、[]运算符和()运算符

#include <iostream>using namespace std;class Test
{
private:int *a;int len;
public:Test(int len = 1){this->len = len;if(len <= 0){cout << "len is less than 0" << endl;return;}a = new int[len];}~Test(){if(a != nullptr){delete [] a;a = nullptr;}}// 重载[]运算符函数int& operator[](int index){return a[index];}// 重载()运算符函数,变成所谓的仿函数,可以用类对象来作为函数名void operator()(int len){for(int i = 0; i < len; i++){cout << a[i] << " "; }cout << endl;}};int main()
{Test temp(5);for(int i = 0; i < 5; i++){temp[i] = i+1;  // 像数组那样来操作}temp(5);    // 像调用函数那样来操作return 0;
}

六、总结

        运算符重载通常是为了更加方便的操作类对象,但是并不是所有的运算符都可以重载,重载的运算符应该尽量跟原来运算符的含义相似,同时不能创造新的不属于C++的运算符。

http://www.ds6.com.cn/news/24892.html

相关文章:

  • 营销型网站有意义吗房地产销售技巧和话术
  • 外贸网站建站案例公司怎么在百度上推广
  • 网站界面设计如何实现功能美与形式美的统一在线外链
  • 备案域名价格优化大师哪个好
  • 有哪些做网站的百度业务范围
  • 如何本地安装wordpressseo软件
  • 网站制作主要公司公众号软文推广多少钱一篇
  • 做数学题的网站有吗刷粉网站推广马上刷
  • 做善事的网站百度广告登录入口
  • 上海装修公司排名前十强排行榜苏州seo网站管理
  • 外贸营销网站建设网站应该如何推广
  • dw用表格做网站江苏网站seo营销模板
  • 编程培训机构排名谷歌seo网络公司
  • 微信网站开发源代码安徽seo优化
  • 自己做网站语言包怎么做中国足球世界排名
  • 网页版微信无法登陆南昌seo实用技巧
  • 仿win8 网站足球比赛直播2021欧冠决赛
  • 手机兼职赚钱软件seo包年服务
  • 全网营销型网站建设外链价格
  • 做淘客网站备案湖南做网站的公司
  • 网站建设视频多层次网络营销合法吗
  • 网站推广优化技巧大全独立网站
  • 深圳网站建设价格是多少建设网站前的市场分析
  • 简易app制作工具9个广州seo推广神技
  • 可以做网站的编程有什么做百度推广员赚钱吗
  • 什么是网站快照谷歌浏览器下载安装2021最新版
  • 衣服销售网站建设规划书范文网络营销的未来发展趋势论文
  • 建设银行网站特点免费培训seo网站
  • html加css漂亮页面源码惠州seo代理计费
  • wordpress 主题 字体搜索引擎优化的简称