<>今天做c++题目碰到的问题

<>如何用类中同一个成员函数 既可以输出一个值 又可以作为可修改的左值:

上图中A::getValue()的作用为返回一个int,
下图中getvalue()显然不能作为 可修改的左值:

因为要同时实现上图中23、24行,
想了许久,
发现可以这样子改:
增加重载函数<<和把上图中的getValue()的返回类型改为A&:

组合起来便可以完成类中一个成员函数同时作为可修改的左值和直接用<<输出

代码如下,还不太懂可以拿去自己的编译器上尝试、理解:
class A { public: int num; A(int t) { num = t; } A(const A& p) { num = p.num; }
friend ostream& operator <<(ostream& out,const A p) { out << p.num; return out;
} int getValue() { return this->num; } A& getValue(){ return this->num; } }; int
main() { int m=3, k=10; A a(m); cout << a.getValue() << endl; a.getValue() = k;
cout<<a<<endl; return 0; }

技术
©2019-2020 Toolsou All rights reserved,
(精华)2020年6月26日 C#类库 GUID帮助类(精华)2020年7月13日 微信小程序 页面间通信使用mt-range实现一个数字随着滑动杆变化的效果SpringDataJPA的Repository理解(精华)2020年7月15日 微信小程序 组件Component的使用shiro-oauth 启用第三方认证登录keras从dataframe中读取数据并进行数据增强进行训练(分类+分割)rk3399_android7.1调试USB蓝牙模块小结作弊器开发商致歉PowerShell中使用WebClient 下载文件并获取下载进度