c – 无法访问类’std :: basic_ios’中声明的私有成员
发布时间:2020-12-16 05:22:10 所属栏目:百科 来源:网络整理
导读:有一个问题与这个特定的方法,不知道如何解决它!我得到的错误是上面的: “error C2248: ‘std::basic_ios_Elem,_Traits::basic_ios’ : cannot access private member declared in class ‘std::basic_ios_Elem,_Traits’ C:Program FilesMicrosoft Visua
有一个问题与这个特定的方法,不知道如何解决它!我得到的错误是上面的:
我的方法是: 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; } 当通过值返回(而不是引用)时,这需要复制流对象,但是通过使copy-constructor1是私有的,C中的任何流对象的复制已被禁用. 1.和副本分配. 要知道为什么复制任何流已经被禁用,请在这里阅读我的详细答案: > Why copying stringstream is not allowed? (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |