Effective C++ 笔记
文章平均质量分 56
Sputnik_02
这个作者很懒,什么都没留下…
展开
-
Effective C++阅读笔记 四
1,让接口容易被正确使用 促进正确使用:保持接口一致性,增加内置类型的兼容 阻止误用:通过建立新类型及限制类型的操作,对参数加以束缚,减少意外的失误。 2,设计class犹如设计type C++定义一个类的时候,也就设计出了一种新的类型,我们需要谨慎考虑以下几点: a,class对象应该如何创建与销毁? b,对象的初始化与赋值该有怎么样差别? c,对象如果进行值传递,会有什么影响? ...原创 2021-07-01 19:10:22 · 109 阅读 · 0 评论 -
Effective C++阅读笔记 三
1,谨慎处理资源的释放问题 对于动态申请的内存,要注意释放,因为有时候调用了某些条件语句会导致内存没有释放。书中建议使用auto_ptr,但C++11之后有更加合适的智能指针来管理。 谨慎处理资源的赋值。 2,成对使用new与delete时要采取相同形式 当我们使用new的时候,会有两件事发生:一是内存被分配出来,二是针对此内存会有一个或多个构造函数被调用。delete的时候,则是先调用一个或者多个析构函数,然后内存才被释放。 但...原创 2021-07-01 15:08:25 · 90 阅读 · 0 评论 -
Effective C++阅读笔记 二
1,了解C++编译器默认编写的函数 对于一个类,编译器会根据需要创建默认构造函数,默认拷贝函数,默认析构函数以及默认重载赋值运算符。但值得注意的是,只有这些函数需要被调用并且我们没有手动定义的时候,它们才会被编译器创建。 值得注意的是,对于拷贝构造函数或者赋值运算符的重载,由于默认的只是简单的赋值,所以对于成员变量为const的情况下,编译器也不会生成对应的默认函数。甚至在我测试的C++14中,如果存在const成员变量,编译器会拒绝生成默认构造函数。(不一定正确) ...原创 2021-06-30 19:35:11 · 91 阅读 · 0 评论 -
Effective C++阅读笔记 一
1,尽量用const或者enum代替#define。 #define,在预编译的时候,系统只是进行单纯的文本替换,而不存在类型检查,所以可能存在风险。 2,对于形似函数的宏定义,最好用inline模板进行替换。 #define只是进行文本替换,虽然不会带来函数的额外开销,但有时候很出错,尽管给宏的“实参”加上括号,也不能彻底避免,例如: #define CALL_WITH_MAX(a,b) func((a)>(b)?(a):(b)) int a = 10...原创 2021-06-30 17:00:11 · 133 阅读 · 0 评论