gpt4 book ai didi

c++ - 在 C++ 中重载提取运算符 >>

转载 作者:太空狗 更新时间:2023-10-29 19:49:28 28 4
gpt4 key购买 nike

<分区>

Possible Duplicate:
Operator overloading

我必须编写一个时钟程序,在重载提取运算符的同时我可以在其中输入小时、分钟和秒。这些是我的代码:

时钟类型.h

#include<iostream>
using namespace std;

class clockType
{
public:
clockType();
void getTime();
friend istream& operator>>(istream&, const clockType);
private:
int hr, min, sec;
}

时钟类型.cpp

#include<iostream>
#include'clockType.h"
using namespace std;

clockType::clockType()
{
hr = 0;
min = 0;
sec = 0;
}

void clockType::getTime()
{
while(hr>=24)
hr = hr - 24;
while(min>=60)
min = min - 60;
while(sec>=60)
sec = sec - 60;
cout<<setfill('0')
<<setw(2)<<hr<<":"
<<setw(2)<<min<<":"
<<setw(2)<<sec<<endl;
}

istream& operator>>(istream& in, clockType cl)
{
in>>cl.hr>>cl.min>>cl.sec;
return in;
}

入口点.cpp

 #include<iostream>
#include'clockType.h'

using namespace std;

int main()
{
clockType clock;
cout<<"Enter hr, min, sec";
cin>>clock;
clock.getTime();
return 0;
}

没有错误。我的问题是,当我输入时、分和秒时,为什么输出 00:00:00?为什么 >> 不将其值传递给对象时钟?

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com