您的位置:首页 > 编程语言 > C语言/C++

c++ primer -- 基于过程的设计(2)

2012-04-22 15:23 183 查看
1.如果返回值是一个大型类对象,用引用(或指针)返回类型比按值返回类对象效率要高得多。在某些情况下,编译器自动将按值返回转换到按引用返回。该优化被称为命名返回值优化(named return value optimization)。

2.返回一个指向局部对象的引用。局部对象的生命周期随函数的结束而结束。在该函数结束后,该引用变成未定义内存的别名。

3.函数返回一个左值。对返回值的任何修改都将改变被返回的实际对象。为防止对引用返回值的无意修改,返回值应该被声明为const。

4.一个程序中的各种函数可以通过两种机制进行通信。[这里的通信(communication)指的是值的交换。]一种方法是使用全局对象,另一种方法是使用函数参数表和返回值。

5.依靠全局对象的通信有下列缺点:A)使用全局对象的函数依赖于全局对象的存在和类型,这使得在不同的上下文环境中重用该函数更加困难。B)如果程序必须被修改,则全局依赖增加了引入错误的可能性。而且,即使只对局部做修改也要求程序员必须理解整个程序。C)如果全局对象得到一个不正确的值,则必须查找整个程序以判断错误发生的位置,也就是没有实现局部化。D)当一个函数使用全局对象时,递归更加难以正确完成。E)在线程存在的情况下,我们必须做特殊的编码,以便同步各个线程对于全局对象的读和写操作。

6.向一个函数传递参数发生错误的可能性随参数表的长度的增加而提高。作为一个通用规则。8个参数应该是最大值了。为了替换一个大型的参数表,程序员可以将参数声明为类、数组或某一种容器类型。这样的参数可以用来包含一组参数值。

7.一个函数只能返回一个值。如果程序的逻辑要求返回多个值,那么程序员可以将某些函数参数声明为引用。或者,程序员可以声明一个函数,它的返回类型是一个可以包含一组返回值的类或某一种容器类型。

8.查看编译器的用户指南,以获得其他链接指示符的进一步信息。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐