Если я простой объект даты:C++ Печати объекта несколько способов
#include <iostream>
using namespace std;
class Date
{
int mo, da, yr;
public:
Date(int m, int d, int y)
{
mo = m; da = d; yr = y;
}
friend ostream& operator<<(ostream& os, const Date& dt);
};
ostream& operator<<(ostream& os, const Date& dt)
{
os << dt.mo << '/' << dt.da << '/' << dt.yr;
return os;
}
int main()
{
Date dt(5, 6, 92);
cout << dt;
}
, и я хочу, чтобы иметь возможность печатать его в том, как люди из Великобритании поймет, т.е.
ostream& operator<<(ostream& os, const Date& dt)
{
os << dt.da << '/' << dt.mo << '/' << dt.yr;
return os;
}
Как наилучшим образом разрешить пользователям класса выбирать между двумя (или более) параметрами печати?
Я думал о чем-то подобном возвращению двух отдельных классов из двух методов класса даты, каждый из которых имеет свой оператор < <, перегруженный двумя разными способами. Но есть ли лучший способ?
код из: http://msdn.microsoft.com/en-us/library/1z2f6c2k.aspx
Существует ли 'strftime' в вашей системе? –
Проверьте информацию о культуре для ОС и используйте ее в потоковом операторе. Альтернативно, есть статический член для выбора формата? – crashmstr
Должен взглянуть на язык: http://www.cplusplus.com/reference/locale/ – Christophe