第一天
1.让自己习惯c++
条款1视c++为一个语言联邦
由于最开始只是将c++语言视为一个只是c语言加上面向对象特征的语言,但如今已经有了许多泛型的语言,最简单的方法是将c++视为一个相关语言组成的联邦,而非单一语言,换句话说,就是c++中有许多的次语言,然而当从一个次语言移往另一个次语言的时候,守则可能改变。
次语言总共有四个
- c,c++是以c为基础扩展出来的,当使用c的语法工作的时候,没有模板,没有异常,没有重载等一切工具
- Object-Oriented C++ 这个就是在c的基础上加上了类,并且具有封装,继承,多态的特性
- Template C++,这个是C++的泛型编程,也被称为模板元编程,TMP相关规则很少与C++主流编程互相影响
- STL 它对容器,迭代器,算法以及函数对象的规约有着极佳的紧密配合与协调 当使用STL的时候,必须遵守它的约定
第二天
1.让自己习惯c++
条款2 尽量以const,enum,inline替换 #define
-
在使用 #define定义的变量,他在编译器处理源码之前就被预处理器拿走了,当运用此常量的时候可能找不到define定义的错误,只能找到当前值的错误,如果不在同一个文件则找起来更加麻烦,所以我们可以使用常量来代替define
-
当使用const的时候,如果定义的是常量指针则需要用到两个const
cosnt char* const name = " "
-
第二点就是在类中声明常量的时候,如果要保证只有一个实例,则需要使用static
-
enumback,取enumback的地址是不合法的,但是取const声明的是合法的,而取define的地址也是不合法的,而使用enumback完全是利用实用主义
-
而在使用define定义函数的时候,可能也会引起许多错误,它要求每个参数都需要有括号,所以使用模板inline函数更加好使,能够保证类型安全