此特定方法有问题,不知道如何解决!我收到的错误是上面的:
“错误 C2248:'std::basic_ios<_elem>::basic_ios':不能
访问类中声明的私有成员
'std::basic_ios<_elem>' C:\Program Files\Microsoft Visual
Studio 10.0\VC\include\ostream 604"
我的方法是:
ostream operator<<( ostream & stream, ProcessClass const & rhs )
{
stream << rhs.name_;
return stream;
}
并在标题中:
friend std::ostream operator<<( std::ostream & stream, ProcessClass const & rhs );
关于如何解决这个问题有什么想法吗?我认为这与通过引用传递而不是值有关......但我有点困惑!
返回类型应该是ostream &
这是一个参考ostream
.
ostream & operator<<( ostream & stream, ProcessClass const & rhs )
{ //^^^ note this!
stream << rhs.name_;
return stream;
}
When you return by value (instead of reference), then that requires copying of stream object, but copying of any stream object in C++ has been disabled by having made the copy-constructor1 private
.
1. and copy-assignment as well.
要知道为什么要复制any流已被禁用,请在此处阅读我的详细答案:
- 为什么不允许复制字符串流? https://stackoverflow.com/questions/6010864/why-copying-stringstream-is-not-allowed/6010930#6010930
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)