- 运算符重载
- const成员
- static成员
运算操作符重载
运算符重载是一 种特殊的技术,允许我们为类或结构体定义自定义的行为。通过重载运算符,我们可以使用常规的运算符(如+、-、*)来执行我们自己定义的操作。
例如,我们可以重载"+"运算符以实现两个对象的相加操作。在重载时,我们可以定义两个对象相加的方式,并返回一个新的对象作为结果。
在C++中,重载运算符需要遵循一定的规则和语法。不同的运算符有不同的重载方式,并且一些运算符不能被重载。
需要注意的是,运算符重载应该根据逻辑和语义进行,避免产生混淆和不一致的行为。
运算操作符重载为了,在类与对象的对对象进行操作时,用逻辑相似的操作符,来构造函数,使得该操作符可以重载,完成所需的操作,例如日期类中对两个对象day1,day2相等的操作
class Data{
public:
Data(int year = 1; int month = 1; int day = 1) {
_year = year;
_month = month;
_day = day;
}
private:
int _year;
int _month;
int _day;
};
// 一般的运算符重载函数直接可以作为全局函数使用
bool operator==(const Date& d1, const Date& d2)
{
return d1._year == d2._year && d1._month == d2._month && d1._day == d2._day;
}
void test_3(){
// 兼顾无参数传入
Data today;
// 也可以直接传入
Data tomorrow(2023, 7, 23);
Data day1(2023, 7, 27);
Data day2;
// 这里的等号经过操作符重载 具有 operator== 的功能,编译器会自动转换
cout<< tomorrow == day1 <<endl;
}