《more effective c++》读书笔记

来源:互联网 发布:生存分析数据库 编辑:程序博客网 时间:2024/05/19 03:24

more effective c++》快读完时,才意识到应该做些笔记:


由于auto_ptrcopy constructor被调用时,对象拥有权转移了,所以以by value方式传递auto_ptrs往往是个非常糟的主意,因此STL容器中绝对不适合放置auto_ptrs

Pass-by-reference-to-const才是适合的途径。


不要提供对dumb pointers的隐式转化操作符,除非不得已。


将一个struct嵌套放进一个Classprivate段落内,可以很方便地让该class的所有members有权处理这个struct,而又能够禁止任何其他人访问这个struct,当然,classfriends不在此限。


class的实现细节不应该是客户关心的焦点,客户只对class的公开接口感兴趣。


编译器在constnon-const member functions之间的选择,只以“调用该函数的对象是否是const”为基准,并不考虑他们在什么情境下被调用。换句话说,operator[]重载,并不能因此区分其被读或被写状态。


将函数声明为纯虚函数,并非暗示它没有实现码,而是意味着:

目前这个class是抽象的;

任何继承此class之具象类,都必须将该纯虚函数重新声明为一个正常的虚函数,也就是说,不可以令它“=0”。


在一个程序中混用CC++时,将双方都使用的函数声明为 extern "c",并确保你的C++C编译器产出兼容的目标文件。如果可能,尽量在C++中撰写main