0
這裏建設是https://msdn.microsoft.com/en-us/library/1z2f6c2k.aspxC++重載ostream的不默認工作與空參數
#include <iostream>
using namespace std;
class Date
{
int mo, da, yr;
public:
Date()
{
mo = 10; da = 10; yr = 99;
}
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 dt0();
cout << dt0 << endl;
Date dt(5, 6, 92);
cout << dt;
}
我期望的輸出是
10/10/99
5/6/92
採取了一個例子,但我所得到的是
1
5/6/92
什麼或如何解決這個問題?
謝謝你的澄清!最好的答案在幾分鐘內! – user3221454
大家知道,'cout <<&dt0 << endl'將打印相同的輸出,因爲兩者都表示函數的地址。 (並且明確地說,如果你確實是這麼想的話,它可以減少一些編譯器的警告。) –
@Dean我已經知道了,不過謝謝:) – Rakete1111