2010-11-25 62 views
0

我有此代码C++类错误

#include <iostream> 
using namespace std; 

class time{ 
      public: 

      time();  //constructor 

      void settime(int,int,int); 

      void print(); 

     private: 

       int hour,min,sec; 

       }; 

//constructor 

time::time(){ 

      hour=min=sec=0; 

      } 

int main(){ 

    int num; 

    time t1;//line1 

    time t2;//line2 

    cout<<"hello"<<endl; 

    cin>>num; 

    return 0;} 

,并在这些线的错误是:

预期`;” “T1” 之前

[警告]语句是一个参考,不叫,起作用时间`”

每行

什么问题???

回答

7

有一个std::time函数通过使用using namespace std;导入到全局名称空间中。这与您的班级名称为time有冲突。这是在名称空间范围内永不使用using namespace std;的又一个好理由。

但是,请注意,并非所有标准库实现都遵守规则,即标准库中来自C标准库的名称不应默认置于全局名称空间中。

另一种选择是time限定名称与class,这将使这在任何系统上运行:

class time t1; 
class time t2; 

你也可能只是考虑重命名你的类。

+0

...或将您自己的时间类放入您自己的名称空间中,使其与全局范围内的任何东西都不同。 – dajames 2010-11-25 16:46:47