<<和>>运算符的用法

1.<<:表示左移运算符

如4<<1,表示向左移一位,低位补0,结果变为8。

2.>>:表示右移运算符

如4>>1,表示向右移一位,高位补0,结果变为2。

好的,以下是我为您编写的代码,希望对您有所帮助: ```c++ #include <iostream> using namespace std; class Date { private: int year; int month; int day; public: Date(int y = 0, int m = 0, int d = 0) : year(y), month(m), day(d) {} // 构造函数 void setDate(int y, int m, int d) { // 设置日期 year = y; month = m; day = d; } int getYear() const { return year; } // 获取年份 int getMonth() const { return month; } // 获取月份 int getDay() const { return day; } // 获取日份 // 重载自增运算符 Date operator++() { int daysInMonth = 31; if (month == 4 || month == 6 || month == 9 || month == 11) daysInMonth = 30; else if (month == 2) { if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0) daysInMonth = 29; else daysInMonth = 28; } day++; if (day > daysInMonth) { day = 1; month++; if (month > 12) { month = 1; year++; } } return *this; } // 重载自减运算符 Date operator--() { day--; if (day < 1) { month--; if (month < 1) { month = 12; year--; } int daysInMonth = 31; if (month == 4 || month == 6 || month == 9 || month == 11) daysInMonth = 30; else if (month == 2) { if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0) daysInMonth = 29; else daysInMonth = 28; } day = daysInMonth; } return *this; } // 重载后置自增运算符 Date operator++(int) { Date temp = *this; ++(*this); return temp; } // 重载后置自减运算符 Date operator--(int) { Date temp = *this; --(*this); return temp; } // 重载输出运算符 friend ostream& operator<<(ostream& os, const Date& date) { os << date.year << "-" << date.month << "-" << date.day; return os; } // 重载输入运算符 friend istream& operator>>(istream& is, Date& date) { is >> date.year >> date.month >> date.day; return is; } }; int main() { Date today; cout << "请输入今天的日期(格式:年 月 日):"; cin >> today; cout << "今天的日期为:" << today << endl; cout << "明天的日期为:" << ++today << endl; cout << "昨天的日期为:" << --today << endl; return 0; } ``` 上述代码中,我们定义了一个名为 `Date` 的类,用于表示日期数据。该类包含了年、月、日等属性,以及设置日期、获取日期、自增自减、输入输出等方法。 在 `main` 函数中,我们通过用户输入来获取今天的日期,并输出今天、明天、昨天的日期,具体实现使用了类中重载的自增自减运算符。 希望这个程序对您有所帮助!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值