Slide 23
Slide 23 text
Header files: (usually) a mess
#ifndef _DATE_H_
#define _DATE_H_
#include
#include
#include
using namespace std;
namespace calendar {
class Date
{
private:
int month_, day_, year_;
friend ostream & operator<<
(ostream &os, const Date& d);
public:
Date() {
set_date( 1, 1, 1970 );
}
Date(int month, int day, int year) {
set_date(month, day, year);
}
// ...
void set_date(int month, int day, int year) {
month_ = month;
day_ = day;
year_ = year;
}
inline void Convert(MuslimDate* other) {
// Some heavy work...
// from math.h:
double res = exp(somevalue);
// ...
*other = MuslimDate(/*...*/)
}
inline int get_month() { return month_; }
inline get_day() { return day_; }
inline get_year() { return year_; }
};
ostream & operator<<(ostream &os, const Date& date)
{
return os << day_ << "/"
<< month_ << "/" << year_;
}
} // namespace calendar
#endif // _DATE_H_
Federico Ficarelli, Idiomatic C++ 23