好像对友元函数理解有问题!各位帮忙看看
#ifndef TIME_H_
#define TIME_H_
#include <iostream>
class CTime
{
protected:
int m_iHour;
int m_iMin;
int m_iSec;
public:
CTime(int hour = 0, int minute = 0, int second = 0);
friend CTime operator +(CTime &time1, CTime time2);
friend CTime operator -(CTime &time1, CTime time2);
friend std::ostream &operator < <(std::ostream &os, CTime &time);
friend std::istream &operator > > (std::istream &is, CTime &time);
};
#endif
std::istream &operator < <(std::istream &is, CTime &time)
{
std::cout < < "Enter time <h:m:s> : ";
is > > time.m_iHour > > ": " > > time.m_iMin > > ": " > > time.m_iSec;
return is;
}
函数这么写为什么报错?
error C2248: 'm_iMin ' : cannot access protected member declared in class 'CTime '真的晕了!难道是不可写?
[解决办法]
std::istream &operator < <(std::istream &is, CTime &time)
应该是:
std::istream &operator > > (std::istream &is, CTime &time);