《高质量C++编程指南》读后笔记三

本文详细介绍了函数设计中的关键原则,包括参数规则、返回值规则及函数内部实现规则等。重点讲解了如何合理使用指针和引用,确保代码的安全性和效率。

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

六、函数设计

  1.参数规则

    如果参数是指针,且仅作输入用,则应在类型前加 const,以防止该指针在函数体内被修改。例如:

      void StringCopy(char *dstString , const char *srcString);

    如果输入参数以值传递的方式传递对象,则宜改用 " const &" 方式来传递,这样可以省去临时对象的构造和析构过程,从而提高效率。

   

  2.返回值的规则

    参数的返回值可以是值类型,指针类型,和引用类型,和函数参数可用类型相同。要仔细区分可以使用的情况。

    简单的说,函数内部,在栈上创建的变量,不能用引用类型或指针类型作为返回值。

 

  3.函数内部实现的规则

    (1) return语句不能返回指向“栈内存”的“指针”或者“引用”,因为该内存在函数调用结束后会自动销毁。这也是为什么前述内容中需要注意函数返回类型的原因;

    (2) 如果函数返回的是一个对象,要注意 return 语句的效率。

 

  4.使用断言

  5.引用与指针的比较(重点)

  “引用传递”的性质象“指针传递”,而书写方式象“值传递”。实际上“引用”可以做的任何事情“指针”也都能够做,为什么还要“引用”这东西?

  答案是“用适当的工具做恰如其分的工作”。

    指针能够毫无约束地操作内存中的如何东西,尽管指针功能强大,但是非常危险。就象一把刀,它可以用来砍树、裁纸、修指甲、理发等等,谁敢这样用?

  如果的确只需要借用一下某个对象的“别名”,那么就用“引用”,而不要用“指针”,以免发生意外。比如说,某人需要一份证明,本来在文件上盖上公章的印子就行了,如果把取公章的钥匙交给他,那么他就获得了不该有的权利。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值