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.查看编译器的用户指南,以获得其他链接指示符的进一步信息。
2.返回一个指向局部对象的引用。局部对象的生命周期随函数的结束而结束。在该函数结束后,该引用变成未定义内存的别名。
3.函数返回一个左值。对返回值的任何修改都将改变被返回的实际对象。为防止对引用返回值的无意修改,返回值应该被声明为const。
4.一个程序中的各种函数可以通过两种机制进行通信。[这里的通信(communication)指的是值的交换。]一种方法是使用全局对象,另一种方法是使用函数参数表和返回值。
5.依靠全局对象的通信有下列缺点:A)使用全局对象的函数依赖于全局对象的存在和类型,这使得在不同的上下文环境中重用该函数更加困难。B)如果程序必须被修改,则全局依赖增加了引入错误的可能性。而且,即使只对局部做修改也要求程序员必须理解整个程序。C)如果全局对象得到一个不正确的值,则必须查找整个程序以判断错误发生的位置,也就是没有实现局部化。D)当一个函数使用全局对象时,递归更加难以正确完成。E)在线程存在的情况下,我们必须做特殊的编码,以便同步各个线程对于全局对象的读和写操作。
6.向一个函数传递参数发生错误的可能性随参数表的长度的增加而提高。作为一个通用规则。8个参数应该是最大值了。为了替换一个大型的参数表,程序员可以将参数声明为类、数组或某一种容器类型。这样的参数可以用来包含一组参数值。
7.一个函数只能返回一个值。如果程序的逻辑要求返回多个值,那么程序员可以将某些函数参数声明为引用。或者,程序员可以声明一个函数,它的返回类型是一个可以包含一组返回值的类或某一种容器类型。
8.查看编译器的用户指南,以获得其他链接指示符的进一步信息。
相关文章推荐
- c++ primer -- 基于过程的设计(3)
- c++ primer -- 基于过程的设计(4)
- c++ primer -- 基于过程的设计(5)
- 基于 Petri 网的软件过程支撑环境设计
- LVrrp的设计过程-基于链路的vrrp
- PLUTO平台是由美林数据技术股份有限公司下属西安交大美林数据挖掘研究中心自主研发的一款基于云计算技术架构的数据挖掘产品,产品设计严格遵循国际数据挖掘标准CRISP-DM(跨行业数据挖掘过程标准),具备完备的数据准备、模型构建、模型评估、模型管理、海量数据处理和高纬数据可视化分析能力。
- c++ primer -- 基于过程的程序设计(1)
- 基于 Petri 网的软件过程支撑环境设计
- LVrrp的设计过程-基于链路的vrrp
- 基于FPGA的数字频率计(设计全过程)
- 基于 UML开发[TDD开发的全过程] 一、设计阶段
- 《C++ Primer》 对象、数组、基于对象设计、泛型设计
- C++ Primer (3RD) 重读笔记——基于过程的程序设计
- C++ Primer 第三篇 基于过程的程序设计
- QuickCSharp框架开发(2)-基于角色的安全访问控制系统存储过程设计
- 基于JXTA进行模型设计的关键过程分析
- 基于fpga设计9/7小波变换的解交织过程详解
- 基于 Petri 网的软件过程支撑环境设计
- 基于 Petri 网的软件过程支撑环境设计
- PLUTO平台是由美林数据技术股份有限公司下属西安交大美林数据挖掘研究中心自主研发的一款基于云计算技术架构的数据挖掘产品,产品设计严格遵循国际数据挖掘标准CRISP-DM(跨行业数据挖掘过程标准),具备完备的数据准备、模型构建、模型评估、模型管理、海量数据处理和高纬数据可视化分析能力。