该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
RT自己写了一个TIME类和SMSDATA类
“Time.h”声明如下
#ifndef _TIME_H
#define _TIME_H
#include
using namespace std;
class TIME
{
private:
int hour;
int min;
int sec;
public:
friend ofstream& operator<< (ofstream& out, const TIME& time);
friend ifstream& operator>> (ifstream& in, TIME& time);
};
#endif
"TIME.cpp”如下
#include "TIME.H"
#include
using namespace std;
istream& operator>> (istream& in, TIME& time)
{
in >> time.hour;
in >> time.min;
in >> time.sec;
return in;
}
ostream& operator<< (ostream& out, const TIME& time)
{
out << time.hour << ':' << time.min << ':' << time.sec;
return out;
}
SMSDATA.h如下:
#ifndef _SMSDATA_H
#define _SMSDATA_H
#include "TIME.H"
//#include
#include
using namespace std;
class SMSDATA
{
private:
unsigned int day_id;
string send_nbr;
string acpt_nbr;
int send_nbr_oprt;
int acpt_nbr_oprt;
TIME send_time;
public:
friend ostream& operator<< (ostream& out, const SMSDATA& smsdata);
friend istream& operator>> (istream& in, SMSDATA& smsdata);
};
#endif
“SMSDATA.cpp”如下:
#include "SMSDATA.H"
#include "TIME.H"
#include
using namespace std;
istream& operator>> (istream& in, SMSDATA& smsdata)
{
in >> smsdata.day_id >> smsdata.send_nbr >> smsdata.acpt_nbr
>> smsdata.send_nbr_oprt >> smsdata.acpt_nbr_oprt >> smsdata.send_time;
return in;
}
ostream& operator<< (ostream& out, const SMSDATA& smsdata)
{
out << smsdata.day_id << smsdata.send_nbr << smsdata.acpt_nbr
<< smsdata.send_nbr_oprt << smsdata.acpt_nbr_oprt << smsdata.send_time;
return out;
}
这里在SMSDATA.cpp中提示错误“errorC2679”就是没有找到接受“TIME”类型的右操作数的运算符(或没有可接受的转换)
这里我就不懂了啊,我明明重载了TIME的输入输出<< 和>>啊,为啥这里不对呢?
可是当我把SMSDATA.cpp中提示错误的地方屏蔽掉,在main函数中
TIME time;
cin>>time;
cout <
这样就一定问题都没有而且能正确的运行,请问是什么问题呢???是我哪里的编译链接过程搞错了吗?还是怎样?求大侠指教啊!谢谢了!!!