У меня есть класс с именем Date, который содержит месяц, день, год и день недели для даты. Я хотел бы включить в класс статическую переменную, которая представляет текущую дату, но процесс ее инициализации требует нескольких шагов. Я думал об инициализации в конструкторе, но клиентский код может ссылаться на него перед созданием объекта Date. Каков наилучший способ справиться с этим?
Класс Дата:
class Date {
private:
// Date variables
unsigned int day;
unsigned int month;
unsigned int year;
unsigned int weekday;
public:
Date() = default;
Date(unsigned int, unsigned int, unsigned int);
void add_days(unsigned int);
// Maintain static const info on current date
static const Date current_date;
// Getter and setter methods
unsigned int get_day();
unsigned int get_month();
unsigned int get_year();
unsigned int get_weekday();
void set_day();
void set_month();
void set_year();
};
Код для инициализации current_date:
time_t raw_time = time(0);
tm current_tm;
localtime_s(¤t_tm, &raw_time);
Date temp(current_tm.tm_mon, current_tm.tm_mday, current_tm.tm_year);
temp.weekday = current_tm.tm_wday;
const Date Date::current_date = temp;
Спасибо за любые предложения.