在main()中,未在范围内声明

Adi*_*Adi 3 c++ class

在编译下面的代码时,我收到错误,

在int main()中,t1未在此范围内声明.

我在用g++.在main()我已经宣布t1,t2t3.那为什么我会收到这个错误?

#include<iostream>
using namespace std;
class time
{
    int hours;
    int minute;
public:
    void getdata(int h,int m)
    {
    hours=h;
    minute=m;
    }   
    void putdata(void)
    {   
        cout<<"\n Hours = "<<hours;
        cout<<"\n Minutes = "<<minute;
    }   
    void sumtime(time ,time);

};
void time::sumtime(time t1,time t2)
{ 
    minute=t1.minute+t2.minute;
    hours=minute/60;
    minute=minute%60;
    hours = hours + t1.hours + t2.hours;
}

int main()
{
    time t1,t2,t3;
    t1.getdata(2,45);
    t2.getdata(3,30);
    t3.sumtime(t1,t2);
    cout<<"\n T1 ... "<<t1.putdata();
    cout<<"\n T2 ..."<<t2.putdata();
    cout<<"\n T3 ... "<<t3.putdata();

    return 0; 
}
Run Code Online (Sandbox Code Playgroud)

Joh*_*ing 7

您的类命名time可能与同名的C标准库函数名称冲突.

我的建议是将您的类和相关函数放在自己的命名空间中.

我也建议你不要using namespace std,而只是带上你真正需要的东西,比如using std::cout.更好的是,using完全避免,只是在你的代码中明确.

  • 或者只是不包括整个`std`命名空间. (2认同)