1.拷贝函数如果不涉及到资源管理,一般是在堆的资源,就不需要自己写。
2.操作符号重载:
1.使用对象:自定义类,通过函数的方式来自己给出新的操作符的意义
2.不能于原操作符相违背,加法的含义不能变为减法;
3.关键字是operator ,函数名是operator+ 操作符号,有几个操作数就几个形参,
前置加加和后置加加的区别就是参数是否带整形。需要注意的是在类里面定义oprator
参数天热自带一个this指针,所以如果有俩个操作数,函数形参里面就只写一个。
4.this 指针前面有 const修饰,完整的修饰是date const *this.
5.operator 函数的返回值于操作符号本身意义有关,运算结果是什么就返回什么,返回本神还是临时变量就看操作符号的具体意义
6.编译器会首先在全局检索这个操作符有没有重载,再去域里面找,同一个操作符重载,全局的形参比自定义类里面的形参多一个。
7.编译器的翻译:
bool operator>(const Date & x);//在类域里面定义前面还有一个 Date const * this参数
在函数中调用时
Date x;
Date y;
x > y 会被翻译成:x.operator>(y);
而在全局定义需要这样定义
bool operator>(const Date &X,const Date & y)
x>y就会被翻译成operator>(x,y);
一般将操作符重载定义在类域里面这样就不会导致在类外无法访问成员的问题
本文介绍了C++中拷贝构造函数的使用场景,强调了不涉及资源管理时通常不需要自定义。接着详细阐述了操作符重载的规则,包括如何在类内和类外定义,关键字`operator`的使用,以及前置和后置自增运算符的区别。还提到了`const`修饰的`this`指针,以及重载函数的返回值和参数设定。最后讨论了操作符重载的查找顺序,并建议一般将其定义在类域内以避免访问问题。

被折叠的 条评论
为什么被折叠?



