将变量 flag 改为私有,设计两个函数 FlagOn 和 FlagOff 来控制该变量的值。
#include <iostream>
#include <iomanip>
using namespace std;
/* 你提交的代码将被嵌在这里 */
void Show(MYTIME &x, MYTIME &y)
{
x.Output();
cout << ' ';
y.Output();
cout << endl;
}
int main()
{
MYTIME a, b;
a.Input();
b.Input();
Show(a, b);
MYTIME::FlagOn();
Show(a, b);
MYTIME::FlagOff();
Show(a, b);
return 0;
}
输入样例
8:30:45 21:5:39
输出样例
Create 00:00:00
Create 00:00:00
08:30:45 21:05:39
08:30:45 am 21:05:39 pm
08:30:45 21:05:39
Destroy 21:05:39
Destroy 08:30:45
代码长度限制
16 KB
时间限制
400 ms
内存限制
64 MB
答案
class MYTIME {
public:
MYTIME(int h = 0, int m = 0, int s = 0)
{
hour = h;
minute = m;
second = s;
cout << "Create " << setfill('0') << setw(2) << hour << ":" << setw(2) << minute << ":" << setw(2) << second << endl;
}
~MYTIME()
{
cout << "Destroy ";
Output();
cout << endl;
}
void Output()
{
cout << setw(2) << setfill('0') << hour << ":" << setw(2) << setfill('0') << minute << ":" << setw(2) << setfill('0') << second;
if (flag)
{
if (hour < 12) cout << " am";
else { cout << " pm"; }
}
}
static void FlagOn()
{
flag = true;
}
static void FlagOff()
{
flag = false;
}
void Input()
{
char sign = ':';
cin >> hour >> sign >> minute >> sign >> second;
}
private:
int hour, minute, second;
static bool flag;
};
bool MYTIME::flag = false;