Item45 -- 清楚知道C++编译器默默为我们完成和调用哪些函数
构造函数、拷贝构造、析构、赋值、取地址
Item46 -- 宁愿编译和连接时出错,也不要执行时才错
举了个把月份抽象成类,通过类的机制使得在编译和连接的时候能够发现错误。这个有点太高深了,一般用不到。忽略。
Item47 -- 使用non-local static objects之前先确定它已有初值
可以使用单键模式解决,在使用的函数声明一个static变量,第一次使用则初始化,以后则直接获取了。
Item48 -- 不要对编译器的警告信息视如不见
C++真的是个难搞的语言,所以下面的这种情况只能见到一个就记一个了
class B{ public: virtual void f() const; }; class D: public B{ public: virtual void f(); }; Warning: D::f() hides virtual B:f() |
这个编译错误是说,B中的f()被掩盖了,即无法使用const B* pb调用f()函数了
Item49 -- 尽量让自己熟悉C++标准程序库
没的说,STL要熟悉,这个任重而道远,现在主要是参考www.cplusplus.com的reference
如果有时间的话,还想看的就是《Effective STL》《STL源码剖析》之类的书了
Item50 -- 加强自己对C++的了解
要读两本书,The Design and Evolution of C++, The Annotated C++ Reference Manual
等有了一定基础和时间再看吧
后记:
Effective C++很早就看完了,不过现在回头看,很多东西都值得再看一遍,我认为深入C++学习,这是一本必须要看的书,很多细节方面的东西,Scott Mayers都驾轻就熟的展现出来,哪天能够把他整本书的思想全部用自己的话讲出来,做到浅显易懂,那么C++算是精通了,现在还只能是粗略的记录下自己认为的重点,所以这个目标还值得花上好几年的努力。