自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(7)
  • 资源 (2)
  • 收藏
  • 关注

原创 Effective C++ -- 继承与面向对象设计

32.确定你的public继承塑模出is-a关系public继承意味着is-a的关系(里氏代换原则),适用于基类的每一件事也适用于继承类。 矩形继承正方形问题: - 可实施与矩形的操作无法实施与正方形 - 在编程领域,正方形是一种矩形是错误的 - 在现实领域,正方形是一种矩形是正确的

2015-03-18 17:15:38 4755

原创 Effective C++ -- 设计与声明

18.让接口容易被正确使用问题: 接口的参数 接口依赖其他调用 class Date { public: Date(int month,int day, int year; }以上代码问题: 容易以错误的顺序传递参数 可能传递无效的月份或天数 解决方法: 通过导入新类型获得预防 struct Day { explicit Day(int):val(d){} int val;

2015-03-18 11:05:43 4718

原创 Effective STL -- vector和string

13.vector和string优先于动态分配的数组 使用vector和string和数组相比,减少了管理内存的工作量。可以使用begin,end,size等函数vector和string拥有iterator,value_type等类型定义。注意事项:string可能使用引用计数,在多线程环境下同步可能会导致性能变差。 14.使用reserve来避免不必要的内存分配 vector超过容量

2015-03-17 14:34:36 4783

原创 Effective C++ -- 资源管理

13.以对象管理资源 void f() { Investment* pInv = createInvestment(); ... delete pInv; } 以上代码存在问题:在delete之前出现异常,导致pInv无法删除,造成资源泄露。 解决方法:RAII Resource Acq

2015-03-17 14:24:20 4714

原创 Effective C++ -- 构造析构赋值运算

05.了解C++默默编写并调用哪些函数 编译产生的析构函数时non-virtual,除非这个类的基类析构函数为virtual成员变量中有引用和const成员时,无法自动生成copy assignment函数基类将copy assignment操作符声明为private时,编译器拒绝为其derived classes生成一个copy assignment操作符。 06.若不想使用编译器自动生

2015-03-14 22:29:37 4708

原创 Effective STL -- 容器

01.慎重选择容器类型 选择容器原则:需要考虑元素的排序情况,是否与标准相符,迭代器能力,元素布局,与C的兼容性,查找速度,引用计数,插入删除对事物语义的支持,某些操作是否会使迭代器无效,内存分配策略。 vector 需要使用随机迭代器 容器中布局需要与C兼容 deque 需要使用随机迭代器 当大多数插入在头部和尾部时 在尾部插入不会是迭代器,指针,

2015-03-13 15:27:40 4752

原创 Effective C++ -- 让自己习惯C++

01.视C++为一个语言联邦 CObject-Oriented C++Template C++STL 过程形式(procedural),面向对象形式(object-oriented),函数形式(functional),泛型形式(generic),元编程形式(metaprogramming) 问题: 泛型形式和元编程形式的区别? 过程形式和函数形式的区别? 结论:

2015-03-11 21:38:34 4759

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除