![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Effective C++ 学习笔记
Teeerrrsss
这个作者很懒,什么都没留下…
展开
-
Effective C++ 学习笔记 《十六》
Item 16 Use the same form in corresponding uses of new and deleteItem16讲的点其实就是关于delete在处理数组和单个对象时需要注意的地方,总结成一句话就是:if you use [] in a new expression, you must use [] in the corresponding delete expre...原创 2019-05-26 17:18:56 · 127 阅读 · 0 评论 -
Effective C++ 学习笔记 《十三》
Item 13: Use objects to manage resources.看到这个item就明白是关于资源管理的,众所周知,内存泄漏是c++典型的一种坑,自然而然对内存泄露的避免是一个非常有意义的话题。所以这一节的重要性尤其突出。如题,作者给出的建议就是用对象来管理资源 书上首先给了个例子void f(){ Investment *pInv = createInvestment...原创 2019-06-10 17:20:47 · 177 阅读 · 0 评论 -
Effective C++ 学习笔记 《二十六》
Item 26: Postpone variable definitions as long as possible.这一节作者谈到的内容是关于变量的定义时机问题。需要考虑这样的一个问题的原因就在于当定义一个变量的时候,就意味着对这个变量对象进行构造(如果有构造函数),以及在离开它作用域的时候进行析构,也就是说需要承担这些消耗。那么如何避免没有意义的消耗就是一个值得考虑的话题作者给出的建议就是...原创 2019-06-09 15:41:06 · 289 阅读 · 0 评论 -
Effective C++ 学习笔记 《七》
Item 7: Declare destructors virtual in polymorphic base classes看这个标题需要注意两个地方,第一个是多态基类polymorphic base classes 另一个是虚析构函数destructors virtual。作者建议我们在写为了实现多态的基类的时候,把这个基类的析构函数设为虚函数。作者给出了一个计时器的基类作为例子,这个计时...原创 2019-06-02 15:50:10 · 124 阅读 · 0 评论 -
Effective C++ 学习笔记 《十》
Item 10: Have assignment operators return a reference to *this其实这一点对于有一定编程经验的人都是熟稔于心,就是在类重载赋值运算符的函数返回类型应该写成类的引用类型,对应的return语句也应该写成return *this;书上说这只是个协议,没有进行深入的解析,我倒是想在这里做一点深入。首先 我们都应该知道c++的值返回类型函数...原创 2019-06-07 20:26:24 · 129 阅读 · 0 评论 -
Effective C++ 学习笔记 《四》
Item 4: Make sure that objects are initialized before they’re used这一节谈论的就是C++的初始化问题。这也是学习C++的时候容易犯错的地方。比如下面这段代码,类Point中的x和y就是未初始化的,所以打印得到的值是没有意义的。class Point {public: inline int getx() { retur...原创 2019-05-29 20:26:52 · 105 阅读 · 0 评论 -
Effective C++ 学习笔记 《六》
Item 6: Explicitly disallow the use of compiler-generated functions you do not want其实这一节的内容是和item5紧密相连的,上一节的核心围绕着编译器会自动生成类的一些方法,那么这一节就是围绕着如何去避免这些自动生成的方法。前一节说到如果想要编译器避免自动生成,解决方法就是自己来写一个,而且要保证写的这个“用不了...原创 2019-05-30 17:15:07 · 122 阅读 · 0 评论 -
Effective C++ 学习笔记 《五》
Item 5: Know what functions C++ silently writes and calls这一节讲的是C++编译器会为程序员默认生成的函数对于一个“空类” class Empty{}; 看上去好像什么都没有但是当需要构造类对象,拷贝类对象等等的时候,编译器会默认为这个类生成默认构造函数,拷贝构造函数,析构函数和拷贝赋值运算符,而且这些函数都是public且inlin...原创 2019-05-30 15:56:01 · 113 阅读 · 0 评论 -
Effective C++ 学习笔记 《十七》
Item 17 Store new ed objects in smart pointers in standalone statements.其实这一点讲的要点比较隐晦,在平时编程的时候很难发现这个问题,但要是不注意却又是一个隐患,所以对这个要点的理解更应该养成是一种编程习惯。首先书上给了一段代码作为例子int priority();void processWidget(std::tr1...原创 2019-05-26 18:29:35 · 127 阅读 · 0 评论 -
Effective C++ 学习笔记 《十四》
Item 14: Think carefully about copying behavior in resource-managing classes.这一节是承接Item13来接着讲关于资源管理类中的拷贝行为。说实话这一节还有很多地方我没想的很清楚,这里先做个记录。回顾前面,item13介绍了RAII的资源管理法则,同时提到了智能指针对于堆资源的应用。但是很多情况智能指针就不太合适,需要...原创 2019-06-10 21:06:56 · 169 阅读 · 0 评论