+ -
当前位置:首页 → 问答吧 → 为什么声明了友元函数还是不能访问私有变量?

为什么声明了友元函数还是不能访问私有变量?

时间:2011-12-11

来源:互联网

代码如下:
class man:public person
{
friend istream& operator >>(istream& in,man& m);
  。。。。。
};
istream& operator >>(istream& in,man& m)
{
  in >> m.id;
  in >> m.name;
  in >> m.age;
  in >> m.location;
  in >> m.salary;
  return in;
}

作者: MOMENT_2000   发布时间: 2011-12-11

如果你是在VC++6.0里面写的以上代码,那么没错!
不是你的错,是编译器的问题。
你换一个开发平台试试,建议使用linux下gcc/g++或者VS2005/VS2010

作者: wumuzi520   发布时间: 2011-12-11

引用 1 楼 wumuzi520 的回复:
如果你是在VC++6.0里面写的以上代码,那么没错!
不是你的错,是编译器的问题。
你换一个开发平台试试,建议使用linux下gcc/g++或者VS2005/VS2010

我用codeblocks编译报一样的错误

作者: MOMENT_2000   发布时间: 2011-12-11

你这是在重载操作符

作者: agoago_2009   发布时间: 2011-12-11

你访问的是父类的私有成员

作者: ahoLic   发布时间: 2011-12-11

引用 3 楼 agoago_2009 的回复:
你这是在重载操作符

对呀

作者: MOMENT_2000   发布时间: 2011-12-11

引用 3 楼 agoago_2009 的回复:
你这是在重载操作符


他说的是对的,只能访问之际类的,父类的不成

作者: jptaozhantaozhan   发布时间: 2011-12-11