随笔分类 -  C++运算符重载

摘要:C++编译器至少给一个类添加4个函数 1.默认构造函数(无参,函数体为空) 2.默认析构函数(无参,函数体为空) 3.默认拷贝构造函数,对属性进行值拷贝 4.赋值运算符operator=,对属性进行值拷贝 注意事项:如果类中有属性指向堆区,做赋值操作时也会出现深浅拷贝问题 1 #include <i 阅读全文
posted @ 2020-04-26 14:32 坦率 阅读(154) 评论(0) 推荐(0)
摘要:作用:通过重载递增运算符,实现自己的整型数据 (1)自定义整型数据实现 1 #include <iostream> 2 using namespace std; 3 4 class MyInteger 5 { 6 friend ostream& operator<<(ostream &cout, M 阅读全文
posted @ 2020-04-23 21:53 坦率 阅读(375) 评论(0) 推荐(0)
摘要:作用:可以输出自定义数据类型 1 #include <iostream> 2 using namespace std; 3 4 class Person 5 { 6 public: 7 8 //成员函数重载左移运算符 p.operator<<(cout) 简化 p << cout 我们想要 cout 阅读全文
posted @ 2020-04-23 21:20 坦率 阅读(321) 评论(0) 推荐(0)
摘要:作用:实现两个自定义数据类型的加法运算 1 #include <iostream> 2 using namespace std; 3 4 class Person 5 { 6 public: 7 8 //1.成员函数重载加号运算符 9 /*Person operator+(Person &p) 10 阅读全文
posted @ 2020-04-23 20:28 坦率 阅读(410) 评论(0) 推荐(0)
摘要:1.函数调用运算符()也可以重载 2.由于重载之后使用的方式很像函数的调用,因此称为仿函数 3.仿函数没有固定写法,非常灵活 情景:后面STL中大量用到! 1 #include <iostream> 2 #include <string> 3 using namespace std; 4 5 //打 阅读全文
posted @ 2020-04-11 10:31 坦率 阅读(365) 评论(0) 推荐(0)
摘要:情景: 1 int a = 10; 2 int b = 10; 3 4 if(a==b) 5 { 6 cout<<"a和b相等"<<endl; 7 } 8 9 Person p1; 10 person p2; 11 12 if(p1==p2) //非内置数据类型关系运算符,编译器无法识别,须重载关系 阅读全文
posted @ 2020-04-11 10:09 坦率 阅读(212) 评论(0) 推荐(0)