【C++】日期类的实现
#include <iostream>
#include <string>
#include <stdexcept>
using namespace std;
class Date {
private:
int day, month, year;
public:
// 初始化日期
Date(int day = 0, int month = 0, int year = 0) : day(day), month(month), year(year) {
if (!isValid(day, month, year)) {
throw invalid_argument("Invalid date");
}
}
// 设置日期
void setDate(int day, int month, int year) {
if (isValid(day, month, year)) {
this->day = day;
this->month = month;
this->year = year;
} else {
throw invalid_argument("Invalid date");
}
}
// 判断输入的日期是否有效
static bool isValid(int day, int month, int year) {
// 这里只是一个简单的示例,实际情况需要根据实际规则判断
if (year <= 0 || month <= 0 || month > 12 || day <= 0 || day > 31) {
return false;
}
return true;
}
// 打印日期
void print() {
cout << year << "-" << month << "-" << day << endl;
}
};
int main() {
try {
Date date(30, 4, 2023);
date.print();
date.setDate(31, 2, 2023);
date.print();
date.setDate(30, 13, 2023); // 将抛出异常
} catch (const exception& e) {
cerr << e.what() << endl;
}
return 0;
}
这段代码定义了一个Date
类,并实现了日期的有效性检查以及基本的设置和打印功能。它演示了如何在C++中处理日期,包括异常处理。在main
函数中,我们创建了一个日期对象,设置了几次日期,并展示了异常处理的用法。
评论已关闭