using name space该怎么用?
如下程序怎么这样是对的,有两个文件,分别是Clock.H,Clock.cpp
File CLocl.H:
#ifndef H_Clock
#define H_Clock
#include<iostream>
using std::ostream;
class Clock
{
public:
int getHour();
int getMinute();
int getSecond();
void setTime(int,int,int);
void getTime(int&,int&,int&);
void incrementHour();
void incrementMinute();
void incrementSecond();
Clock(int,int,int);
Clock(const Clock&);
friend ostream& operator<< (ostream&,const Clock&);
private:
int hour;
int minute;
int second;
};
#endif
File CLock.cpp
#include "Clock.h"
using namespace std;
int Clock::getHour()
{
return hour;
}
int Clock::getMinute()
{
return minute;
}
int Clock::getSecond()
{
return second;
}
void Clock::incrementHour()
{
hour = (++hour)%24;
}
void Clock::incrementMinute()
{
minute = (++minute)%60;
if (minute==0)
incrementHour();
}
void Clock::incrementSecond()
{
second = (++second)%60;
if (second == 0)
incrementMinute();
}
void Clock::setTime(int hour,int minute,int second)
{
this->hour = hour;
this ->minute = minute;
this->second = second ;
}
void Clock::getTime(int&hour,int&minute,int&second)
{
hour = this->hour ;
minute = this->minute;
second = this->second;
}
Clock::Clock(int hour,int minute,int second)
{
this->hour = hour ;
this ->minute = minute ;
this->second = second ;
}
Clock::Clock(const Clock& aClock)
{
hour = aClock.hour ;
minute = aClock.minute ;
second = aClock.second ;
}
ostream& operator<< (ostream& os,const Clock &clock)
{
os<<clock.hour<<":"<<clock.minute<<":"<<clock.second;
return os;
}
这样的话程序可以运行,但是,
我把Clock.H中using std::ostream改为using namespace std;就出问题了,好象识别不了friedn函数