基本语言细节--《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