返回值哲学

类中的方法可以根据对属性的操作分为两类,一类是读取属性值的,一类是影响属性值的,即对属性的修改。
读取属性值进行计算的我们可以直接返回其结果,下面我们来谈谈对于属性值操作的方法。

1.增加元素进入容器类型的属性中,返回this的引用。之所以这样做是为了可以对实例化的对象连续操作,如果返回其他会使对外的借口使用起来不是那么顺手。

例如c++中的流,他们基本都重载了<<和>>操作符,他们返回的就是流对象本身,这样我们就可以产生类似于cout << "hello << "world << endl;这样的语句。其运作过程是将语句分块执行,该句被拆分为cout << "hello";cout << "world"; cout << endl;如果我们不是返回this,那么我们就不可能将其连成一句,而必须写三句来完成相同的任务。在JAVA的SWING添加面版空间的add()方法也用了类似的方法

2.修改属性值,返回修改前的属性值。这样是为了我们可以方便的将对象恢复到修改前的状态。我们可以先以一个变量记录修改前的旧值,然后以新值替换,当我们想恢复的时候在将先前的值传入修改。

例如win32 API中的DC操作多采用了这种方法,当我们需要修改时会用一个变量接收修改画笔函数的返回值,这个值就是我们修改前的值,当我们需要恢复画笔时可以将先前记录的变量再传回就可以了。

3.从容器类型属性中删除元素,返回值一般取void这样的空类型。也有时用一个INT或者BOOL表明删除操作是否被成功执行了,其实这可以通过EXCEPTION机制取得相同的效果,无返回值可以加快执行效率。

例如,STL中的VECTOR容器中的pop_back()方法就是返回void类型的。

上文是我短短几年的编程心得,于大家分享,不周全之处希望大家批评指正。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值