
Effective C++
文章平均质量分 83
leileicaocao
这个作者很懒,什么都没留下…
展开
-
Effective C++ (03)
条款13:以对象管理资源会因为各种各样的原因delete没有被执行:过早的return goto、异常抛出把资源(例如内存)管理放在对象内,就可以在析构函数时执行利用析构函数确保资源被释放。 auto_ptr p1(new Obj());auto_ptr p2(p1); 这时候p2指向对象,p1为NULLp1 = p2;原创 2013-05-27 23:11:05 · 440 阅读 · 0 评论 -
Effective C++ (05)
条款28:避免返回handles指向对象内部成分可能悬空,hanndle指向的东西不再存在但也有例外:operator[]避免返回handle:指针、引用、迭代器指向对象内部 条款29:为异常安全努力异常安全: 不泄露任何资源: 不允许败坏数据代码越短,出错机会越少异常安全的函数有以下保证: 基本保证:如果抛出原创 2013-05-27 23:17:00 · 416 阅读 · 0 评论 -
Effective C++ (01)
条款1:C++: c、面向对象的c++、带模版的c++、STL 条款2:尽量以const、enum、inline代替#define宁可以编译器替换预处理器。#define没有进入符号表,造成无法跟踪。常量指针。以const代替#define的所谓常量定义功能以inline代替#define的所谓宏定义功能class内部的专属常量。为了将常量的作用域原创 2013-05-27 22:59:31 · 410 阅读 · 0 评论 -
Effective C++ (02)
条款5C++默默的为一个空的class生成:constructor、deconstructor、copyconstructor 、copy assignment引用不允许被更改为另一个。int a = 1;int b = 2;int & nr1 = a;nr1 = b; wrong如果要支持copy assignment,对于有类内static、const的数据,要自己原创 2013-05-27 23:07:55 · 940 阅读 · 0 评论 -
Effective C++ (04)
条款21:必须返回对象时,别妄想返回其reference可能会犯的错误:传递reference,指向其实并不存在的对象任何时候看到一个reference,都要问一问,它的本源在哪里?它指向的对象(或内置类型)在哪里?不要返回局部对象的reference或指针!static对象,注意多线程不要返回局部对象的reference或pointer,也不要返回堆区new出来的对象,因为很原创 2013-05-27 23:12:31 · 452 阅读 · 0 评论 -
Effectiv C++ (06)
条款34:区分接口继承和实现继承Class Shape{Public:Virtual void draw() const = 0;Virtual void error(const string &msg);Int objectID() const;};Class Rectangle : public Shape{};Class Ellip原创 2013-06-06 11:12:09 · 510 阅读 · 0 评论 -
Effectiv C++ (07)
条款41:了解隐式接口和编译器多态TemplateVoid doProcessing (T& t){If (w.size() > 10 && w != someNastyWidget){ T temp(w); Temp.normalize(); Temp.swap(w);}}必须支持:size、norma原创 2013-06-06 11:13:50 · 409 阅读 · 0 评论 -
Effectiv C++ (08)
条款49:了解new-handlerTypedef vod (*new_handler)();New_handler set_new_handler(new_handler p) throw();传入:operator new无法分配足够内存时被调用的函数。返回:被调用前正在执行的那个函数。例如:Void outOfMem(){Cerr Std:原创 2013-06-06 11:14:49 · 487 阅读 · 0 评论