Я немного растерялся из-за того, как создать экземпляр этого шаблона.Я знаю, что будет проще использовать членство friend
, чтобы понять, чего я хочу, но что, если я заставлю это сделать?Я просто хочу понять это.(И, кстати, я знаю, что этот шаблон кажется бессмысленным), я просто хочу заставить его скомпилироваться.
#include <iostream>
template <typename T>
inline std::ostream& operator<< (std::ostream& os, const T& date)
{
os << date.getD() << " " << date.getM() << " " << date.getY() << "\n";
return os;
}
class Date
{
private:
int dd, mm, yy;
public:
Date(int d, int m, int y) : dd(d), mm(m), yy(y) {}
int getD() const;
int getM() const;
int getY() const;
};
int Date::getD() const { return dd; }
int Date::getM() const { return mm; }
int Date::getY() const { return yy; }
int main(int argc, char const *argv[])
{
Date dat(1, 2, 2003);
std::cout << <Date> dat;
return 0;
}