<>今天做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,
某东14薪变16薪,是诚意还是套路?HashMap详解os模块的简单使用html写樱花树,写樱花树的作文浏览器内核(理解)java四大函数式接口(重点,简单)让人意想不到的Python之樱花树(turtle库的华丽样式)计算机网络---计算机网络基本概念(协议、体系)06【若依框架解读】数据范围过滤--太牛了