| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2096 人关注过本帖
标题:this指针链接问题
取消只看楼主 加入收藏
生命太短暂
Rank: 2
等 级:论坛游民
帖 子:16
专家分:15
注 册:2020-4-30
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:3 
this指针链接问题
可是this链接我有点不懂如这一句calc.add(5).sub(3).mult(4);
在学习过程中知道了this其实是一个const指针,可接受类成员变量的地址,
这个代码是我教材的代码,并不是自己扣字扣出来的,
对于代码的解读,add是calc类型的引用,并且add等于*this,可这样理解this=&calc.m_value,然后this+=value然后进行return   this解引用,其他的类似(这一句是我自己琢磨出来的可能不对)然后得到(5-3)*4,最终返回m_value;的值。
可是calc.add(5).sub(3).mult(4);就不怎么理解了?说是返回的是*this

class Calc
{
private:
    int m_value;
public:
    Calc() { m_value = 0; }
 
    Calc& add(int value) { m_value += value; return *this; }
    Calc& sub(int value) { m_value -= value; return *this; }
    Calc& mult(int value) { m_value *= value; return *this; }
 
    int getValue() { return m_value; }
};


#include <iostream>
int main()
{
    Calc calc;
    calc.add(5).sub(3).mult(4);
 
    std::cout << calc.getValue() << '\n';
    return 0;
}
搜索更多相关主题的帖子: return int this add value 
2020-05-03 20:39
生命太短暂
Rank: 2
等 级:论坛游民
帖 子:16
专家分:15
注 册:2020-4-30
收藏
得分:0 
我也知道分开是这样的写法,可是像calc.add(5).sub(3).mult(4);这样的写法有点不科学,为什么可以连续.
2020-05-04 09:10
生命太短暂
Rank: 2
等 级:论坛游民
帖 子:16
专家分:15
注 册:2020-4-30
收藏
得分:0 
就是说自身的引用就是说this->add,sub,mult, 实际是this->calc的别名?对了实例是什么意思
2020-05-04 13:22
生命太短暂
Rank: 2
等 级:论坛游民
帖 子:16
专家分:15
注 册:2020-4-30
收藏
得分:0 
谢谢耐心指导,根据7楼的思维,可以理解为实例就是变量名?
2020-05-04 14:29
快速回复:this指针链接问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016156 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved