基本语言细节--《The C++ Programming Language 》--(3)基本功能

来源:互联网 发布:britney spears 知乎 编辑:程序博客网 时间:2024/06/06 18:52

                              基本语言细节--《The C++ Programming Language 》--(3)基本功能

1.数组参数被隐式转化为指针,意味着对于被调函数而言,失去了数组大小的信息;

2.大多数C++实现不对数组范围检查;

3.const限制了对象能够使用的方式,但是并未描述常量应该如何分配;如果编译器知道了所有某const的使用,可以不分配空间;但是对于常量数组典型的情况是需要分配存储空间,因为对于编译器来说无法知道表达式里使用的是数组中的哪些元素;

4.对于普通引用的初始式必须是同一个类型的左值,而不存在隐式类型转换;但是常引用却可以,以此来实现多态;

5.void *的最重要的用途就是向函数传递一个指针,而又不能对对象类型的任何假设;其是设计错误的指示器,应该慎用;

6.避免在代码中使用神秘数;

7.尽可能使用STL;

8.在读输入的时候,应该考虑病态形式的输入;

9.inline函数并不影响函数的语义,每个这样的函数都将有自己的独立地址;inline只是一个给编译器的提示而已!

10.重载的规则:第一,准确匹配;第二,提升的匹配char-int;第三,标准转换的匹配比如int-double;第四,用户定义转换匹配;第五,函数声明中省略号匹配。此规则与声明的顺序无关;与函数返回类型无关。

11.如果你必须使用宏,请使用带有许多大写字母的丑陋的名字!

12.学会使用名字空间;

13.编译单位:用户提交的源文件,首先是对其的预处理,完成宏处理,并按照include指令包含进所有的头文件;而编译单位才是编译器真正的工作对象;

14.const 与typedef都是内部连接的;

15.利用头文件强调界面和强调逻辑结构;

wulangjushi 于HUST 2013.12.5