c++把warning去掉,程序如下,但编译有3个warining

#include <iostream>
using namespace std;
class Time //定义Time类
{
public: //数据成员为公用的
void settime(int newh,int newm,int news);
void showtime();
private:
int hour;
int minute;
int sec;
};

void Time::settime(int newh,int newm,int news)
{
cout<<"请分别输入时 分 秒"<<endl;
cin>>newh>>newm>>news;
hour=newh;
minute=newm;
sec=news;
}

inline void Time::showtime()
{
cout<<hour<<":"<<minute<< ":"<<sec<<endl;
}
int main( )
{
Time t1; //定义t1为Time类对象
int hour,minute,sec;
t1.settime(hour,minute,sec);
t1.showtime();
return 0;
}

第1个回答  2011-10-24
我看了一下是
warning C4700: local variable 'sec' used without having been initialized
warning C4700: local variable 'minute' used without having been initialized
warning C4700: local variable 'hour' used without having been initialized
对吧?
这是说明这三个变量没有被初始化 就被使用了。
虽说没有错误 但是会有警告
你将他们初始化一下就行了
第2个回答  2011-10-24
修改如下:

//---------------------------------------------------------------------------
#include <iostream>
using namespace std;
class Time
{
public:
void settime(void);//注意这里
void showtime();
private:
int hour;
int minute;
int sec;
};

void Time::settime(void) //注意这里
{
cout<<"请分别输入时 分 秒"<<endl;
cin>>hour>>minute>>sec; //注意这里
//注意这里
}

inline void Time::showtime()
{
cout<<hour<<":"<<minute<< ":"<<sec<<endl;
}
int main( )
{
Time t1;
//注意这里
t1.settime(); //注意这里
t1.showtime();
return 0;
}
//---------------------------------------------------------------------------本回答被提问者采纳
相似回答