关于类中,有元函数的定于问题,谢谢!
类的头文件中:
#ifndef TIME_H
#define TIME_H
#include <iostream>
using namespace std;
class Time{
private:
int hours;
int mimutes;
public:
void show()const;
Time(int hour=0,int mimute=0);
friend ostream & operator < < ( ostream &os,const Time &m_time);
};
#endif
CPP文件中
#include "Time.h "
#include <iostream>
using namespace std;
ostream & operator < <(ostream &os,const Time &m_time)
{
os < < "hours: " < <m_time.hours < < "mimutes: " < <m_time.mimutes < <endl;
return os;
}
为什么这样会提示错误,函数不能访问类的私有成员?
而如果头文件这样定义:
#ifndef TIME_H
#define TIME_H
#include <iostream>
class Time{
private:
int hours;
int mimutes;
public:
void show()const;
Time(int hour=0,int mimute=0);
friend std::ostream & operator < < ( std::ostream &os,const Time &m_time);
};
#endif
不用using namespace std;
而在ostream 加上名称空间STD就没有问题?
[解决办法]
VC6 是吧
VC6中 对友原函数支持不好
例如这样的代码通常编译不过去
friend ostream & operator < < ( ostream &os,const Time &m_time);
[解决办法]
换VC8吧
[解决办法]
vs2005下没有这个问题,楼主用的什么编译器
[解决办法]
VC6对C++标准支持不是很好
[解决办法]
把vc6 打补丁阿,或者换ide 或者改头文件为 <iostream.h>
[解决办法]
搞不明白,同样的问题。。。。。不能让这帖子下去,谁来帮忙解答一下