字符串类常见

本文探讨了在C++中使用链式调用技术实现简洁的代码风格,通过实例展示了如何在Calc类中实现链式调用,简化操作序列,并与字符串类的操作进行对比,最终强调链式调用在提升代码效率和可读性方面的作用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1
2
3
4
5
6
7
8
9
10
11
12
13
14
class Calc
{
private:
    int m_nValue;
 
public:
    Calc() { m_nValue = 0; }
 
    void Add(int nValue) { m_nValue += nValue; }
    void Sub(int nValue) { m_nValue -= nValue; }
    void Mult(int nValue) { m_nValue *= nValue; }
 
    int GetValue() { return m_nValue; }
};
如果你想添加5减去3乘以4你会这样做

1
2
3
4
Calc cCalc;
cCalc.Add(5);
cCalc.Sub(3);
cCalc.Mult(4);
然而,如果我们让每一个函数返回*this,我们可以链召集。这里是的新版本链式功能

1
2
3
4
5
6
7
8
9
10
11
12
13
14
class Calc
{
private:
    int m_nValue;
 
public:
    Calc() { m_nValue = 0; }
 
    Calc& Add(int nValue) { m_nValue += nValue; return *this; }
    Calc& Sub(int nValue) { m_nValue -= nValue; return *this; }
    Calc& Mult(int nValue) { m_nValue *= nValue; return *this; }
 
    int GetValue() { return m_nValue; }
};

我们已经有效地凝聚成一个三行的表达!让我们仔细看看它是如何工作的。

首先,CCalc。添加(5)称,这增加了我们的m_nvalue 5。add()然后返回*this,这是一个参考CCalc。我们的表达是现在CCalc。子(3)、(4)。CCalc。子(3)减去3从m_nvalue返回CCalc。我们的表达是现在CCalc多(4)。CCalc。多(4)乘以4,返回m_nvalue CCalc,然后被忽视。然而,由于每个函数修改CCalc是执行,CCalc现在包含值((0 + 5)–3)* 4),这是8。

虽然这是一个很牵强的例子链接功能,以这样的方式与字符串类常见。例如,它是可能的过载运算符来做一个字符串追加。如果运算符返回*this,就可能写这样的表达式:

这是很容易能够做到见效益!我们将覆盖重载运算符(和其他运营商)在未来教训。

带走这节课最重要的一点是,“这是任何成员函数指针的一个隐藏的参数。大多数时候,你将不需要直接访问它。值得注意的是,“这是一个const指针-你可以改变其所指向的对象的值,但是你不能做点别的东西!


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值