返回引用的一些好处(编程日记)

在实现一些字符串操作的类中,经常返回一些引用,这样都有哪些好处呢?
 类大致如此
 class String
{
 private:
     char *str;
     int len;
     static int num_strings;
public:
   ...
};
  1. 在重载 = 操作符时,可以返回引用,如
  String & ::String  operator=(const StringBad &st)
{  
   if( this==&st)
   return *this;
   delete[] str;      // 释放原来指向的内存
   len=strlen(st.str);
   str=new char [len+1];
   strcpy(str,st.str);
 
   return *this;
}
因为这样可以实现连续赋值 s0=s1=s2; s0.operator=(s1.operator=(s2);

2.重载 []
   char & String:: operator[](int i)
   {
      if(i<0||i>len)
       throw"查询字符位置出错";
      else
        return str[i];
}
这样的话可以可以便于给特定的元素赋值
 如 String s("might");
    s[0]='r';
   这时相当于 s.operator[][0]=='r';
   这里将r 赋值给方法的返回值,函数返回值是指向s.str[0]的引用,等同于如下
     s.str[0]='r';

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值