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

中国建设银行信用卡中心网站酒店招聘做的好的网站

中国建设银行信用卡中心网站,酒店招聘做的好的网站,如何在godaddy空间做手机网站,哈尔滨信息工程学院1、运算符重载的概念 运算符重载#xff0c;就是对已有的运算符重新进行定义#xff0c;赋予其另一种功能#xff0c;以适应不同的数据类型。运算符重载的目的是让语法更加简洁运算符重载不能改变本来寓意#xff0c;不能改变基础类型寓意运算符重载的本质是另一种函数调用…1、运算符重载的概念 运算符重载就是对已有的运算符重新进行定义赋予其另一种功能以适应不同的数据类型。运算符重载的目的是让语法更加简洁运算符重载不能改变本来寓意不能改变基础类型寓意运算符重载的本质是另一种函数调用是编译器去调用这个函数统一的名字叫operator重载函数可以写成全局或成员函数重载函数如果写成全局的那么双目运算符左边的是第一个参数右边是第二个参数重载函数如果写成成员函数那么双目运算符的左边是this右边是第一个参数不能改变运算符优先级不能改变运算符的参数个数。 2、加号运算符重载 1、同类型的对象相加 #include iostream using namespace std;class Maker { public:Maker(int id, int age){this-id id;this-age age;}//写成成员函数那么只需要一个参数这个参数是加号的右边Maker operator(Maker m2){Maker temp(this-id m2.id, this-age m2.age);return temp;} public:int id;int age; }; //重载加号运算符 全局函数方式 //Maker operator(Maker p1,Maker p2) //{ // Maker temp(p1.id p2.id, p1.age p2.age); // return temp; //} void test() {Maker m1(1, 10);Maker m2(2, 20);Maker m3 m1 m2;cout m3.id endl;cout m3.age endl; } int main() {test();return 0; }2、不同对象类型相加 #include iostream using namespace std;class Maker { public:Maker(int id, int age){this-id id;this-age age;}//写成成员函数那么只需要一个参数这个参数是加号的右边Maker operator(Maker m2){Maker temp(this-id m2.id, this-age m2.age);return temp;} public:int id;int age; };class Student { public:Student() {mid 0;}Student(int id) {mid id;} public:int mid; };Maker operator(Maker m1, Student s1) {Maker temp(m1.id s1.mid, 20);return temp; } Student operator(Student s1, Maker m1) {Student temp(s1.mid m1.id);return temp; } void test() {Maker m1(1, 10);Student s1(2);Maker m3 m1 s1;cout m3.id endl;Student s2 s1 m1;cout s2.midendl; } int main() {test();return 0; }3、减号运算符重载 #include iostream using namespace std;class Maker { public:Maker(int id, int age){this-id id;this-age age;}//写成成员函数那么只需要一个参数这个参数是加号的右边Maker operator-(Maker m2){Maker temp(this-id - m2.id, this-age - m2.age);return temp;} public:int id;int age; }; void test() {Maker m1(10, 18);Maker m2(5, 15);Maker m3 m1 - m2;cout m3.id endl;cout m3.age endl; } int main() {test();return 0; }4、左移运算符重载 #include iostream #include iostream using namespace std;class Maker { public:Maker(int id, string name){this-id id;this-name name;} public:int id;string name; }; //1、形参和实参是一个对象 //2、不能改变库类中的代码 //3、ostream中把拷贝构造函数私有化了 //4、如果要和endl一起使用那么必须返回ostream的对象 ostream operator(ostream out, Maker m1) {cout m1.id m1.name endl;return out; } void test() {Maker m1(10, 薯片);cout m1 endl; } int main() {test();return 0; }5、右移运算符 #include iostream #include iostream using namespace std;class Maker { public:Maker(int id, string name){this-id id;this-name name;}int getAge() {return this-id;} public:int id;string name; };istream operator(istream in, Maker m1) {cin m1.id;cin m1.name;return in; } void test() {Maker m(10, 薯片);cin m;cout m.getAge() endl; } int main() {test();return 0; }6、关系运算符重载 #include iostream #include iostream using namespace std;class Maker { public:Maker() {};Maker(int id){this-id id;}bool operator(Maker m) {if (this-id m.id) {return true;}return false;}bool operator!(Maker m) {if (this-id ! m.id) {return true;}return false;} public:int id; };void test() {Maker m1(10);Maker m;if (m1 m) {cout 真 endl;}else {cout 假 endl;}if (m1 ! m) {cout 真 endl;}else {cout 假 endl;}} int main() {test();return 0; }7、前置加加和后置加加 #include iostream #include iostream using namespace std;class Maker {friend ostream operator(ostream os, Maker m); public:Maker(int id){this-id id;}//重置前置加加Maker operator(){this-id;return *this;}//重置后置加加Maker operator(int)//占位参数必须是int{Maker tmp(*this);//tmp是局部变量局部变量不能以引用返回this-id;return tmp;} private:int id; };ostream operator(ostream out, Maker m) {cout m.id endl;return out; }void test() {Maker m1(10);cout m1;cout m1;} int main() {test();return 0; }8、智能指针类 8.1、智能指针类是管理另一个类的对象的释放 #include iostream #include iostream using namespace std;class Maker { public:Maker() {cout Maker的无参构造 endl;}~Maker() {cout Maker的析构函数 endl;}};//智能指针类 class SmartPoint { public:SmartPoint(Maker* p){this-pMaker p;}~SmartPoint(){cout SmartPoint的析构函数 endl;if (this-pMaker ! NULL){delete this-pMaker;this-pMaker NULL;}} private:Maker* pMaker; }; void test() {Maker* p new Maker;//在堆区开辟的数据需要手动delete掉SmartPoint sm(p);//栈区 会调用析构函数//当test()函数结束时会调用smartPoint的析构函数。//在这析构函数中delete了Marker的对象会调用Maker的析构函数 } int main() {test();return 0; }8.2、指针运算符重载 #include iostream #include iostream using namespace std;class Maker { public:Maker() {cout Maker的无参构造 endl;}void printMaker(){cout Hello Maker endl;}~Maker() {cout Maker的析构函数 endl;}};//智能指针类 class SmartPoint { public:SmartPoint(Maker* p){this-pMaker p;}//重载指针运算符Maker* operator-(){return this-pMaker;}~SmartPoint(){cout SmartPoint的析构函数 endl;if (this-pMaker ! NULL){delete this-pMaker;this-pMaker NULL;}} private:Maker* pMaker; }; void test() {Maker* p new Maker;SmartPoint sm(p);sm-printMaker(); } int main() {test();return 0; }8.3、重载星号 //重载星号Maker operator*(){return *pMaker;}void test() {Maker* p new Maker;SmartPoint sm(p);(*sm).printMaker(); }9、重载函数调用符号 9.1、类里有重载函数调用符号的类实例化的对象也叫仿函数 #include iostream #include iostream using namespace std;//一个类如果重载了函数调用符号那么这个类实例化出的对象也叫仿函数 //仿函数的作用1、方便代码维护 class Maker { public:Maker(string name) {this-m_Name name;};void printMaker(){cout hello this-m_Name endl;}//重载void operator()(){cout hello endl;} public:string m_Name; };void test() {Maker func(薯片);func();//看着像函数但func是对象} int main() {test();return 0; }
http://www.dnsts.com.cn/news/104980.html

相关文章:

  • 外贸公司几个网站电子相册在线制作网站
  • 建设工程教育网视频网站前端开发主要做什么
  • 将网站做成logo怎么做云南楚雄医药高等专科学校
  • 安徽建设工程信息网官短视频seo询盘系统
  • 凡客另一购物网站网站做电商资质
  • 佛山网站建设费用东莞市外贸网站建设多少钱
  • 体育直播网站建设晋江网站建设费用
  • php大型网站开发视频网站建设 排行
  • 网站设计素材网站东莞招聘信息最新招聘2022
  • 南阳那里有做网站的关于网站开发的文档
  • 做网站和app那个花销大响水做网站的价格
  • 内蒙古建设协会网站整形网站整站源码
  • 山东建设局网站电工网站打开速度概念
  • 模板网站外链做不起来百度cdn wordpress
  • 青岛地产网站建设广州网站建设小程序开发
  • 化妆品 营销型网站孝感网站建设专家
  • 三亚本地网站建设wordpress主页不加index.php 打不开
  • 福永招聘网站建设正规挣钱最快的游戏
  • 学校网站制作素材怎么做类似美团的网站
  • 网站icp备案手续温州大型网站设计公司
  • 乔柘云智能建站南京seo按天计费
  • 网站建设 佛山网页设计欣赏熊出没
  • wordpress浮动留言板昆山优化外包
  • 网络游戏网站制作自己怎么开网店的步骤
  • 注册服务器网站哪个好seo分析seo诊断
  • 网站seo策划方案设计济南网站推广服务
  • 网站定制案例微安电力百度竞价开户3000
  • 哪个网站可以做自己的网页精品课网站建设 辽宁
  • 宝安第一网站上海建设银行网站转账记录
  • 网站建设服务合同范本网站制作价格与售后视频