単純な日付オブジェクトを取る場合:
#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;
}
クラスのユーザーが2つ(またはそれ以上)の印刷オプションから選択できるようにするための最良の方法はどのようになっていますか?
私は、日付クラスの2つのメソッドから2つの別々のクラスを返すのと同じようなことを考えていました。それぞれのクラスには、2つの異なる方法で演算子<<がオーバーロードされています。しかし、もっと良い方法はありますか?
マニピュレータを実装する必要があります。
独自の実装をC ++でサポートしていると確信しています。インスピレーションを得るために、たとえば、std::showbase
/std::noshowbase
が環境にどのように実装されているかを見てください。ukdate / noukdateを実装する必要があります。
編集:これにshowbase
は確かに狭すぎる例です-を使用してストリームごとの単語を割り当てる必要がありstd::ios_base::xalloc
ます。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加