自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

奋斗中的苦逼2B程序员

庸庸碌碌过了两年,冒然回首,一无所成,开一blog,记录学习历程

  • 博客(14)
  • 收藏
  • 关注

原创 Effective C++学习笔记 (14)

本人学习C++不精,故重新学习,点滴记录与大家分享,不足之处还望大牛多多指教。 在资源管理类中小心copying行为          对于上一条款所讲的RAII(资源取得时便是初始化时机)原则,本条款对于资源管理类的拷贝行为进行了说明,大概分为以下几种:在执行copy时采用深度拷贝,把管理类的资源也一起拷贝;禁止copy行为(将拷贝构造函数或者赋值运算符私有化);使用引用计数(shar

2012-09-11 00:03:44 152

原创 Effective C++学习笔记 (13)

本人学习C++不精,故重新学习,点滴记录与大家分享,不足之处还望大牛多多指教。 以对象管理资源 由于在写代码时很多时候需要用到资源,比如new一个对象之类的,这样一来资源的申请和释放需要程序员自己完成,对代码的逻辑需要谨慎设计,才能保证资源不会泄漏。 其实这类似的编程风格,在之前写C的时候也有编码规范来规定资源的释放,比如do while的运用啊,goto Exit0之类的方法,但是对

2012-09-10 23:34:33 473

原创 Effective C++学习笔记 (12)

本人学习C++不精,故重新学习,点滴记录与大家分享,不足之处还望大牛多多指教。 条款12:复制对象时勿忘其每一个成分          其实当我看到这个标题的时候我在想是不是说的深度拷贝的问题,但是我发现我想多了,毕竟这本书不是一本C++基础教程。该条款主要是针对在继承中,子类实现拷贝构造函数或者赋值运算符时,父类的成员变量没有初始化的问题。          首先还是看下代码吧。

2012-09-08 17:34:11 210

原创 Effective C++学习笔记 (11)

本人学习C++不精,故重新学习,点滴记录与大家分享,不足之处还望大牛多多指教。 在operator=中处理“自我赋值”          该条款首先提出了有可能出现自我赋值的情况,同时提出了几种可能存在的潜在自我赋值,然后通过解释了自我赋值可能出现的问题,以及如何解决“自我赋值”以及“异常安全性”这两类问题。          首先看一下以下的代码 这样运用赋值运算符没任

2012-09-08 17:32:13 258

原创 Effective C++学习笔记 (10)

本人学习C++不精,故重新学习,点滴记录与大家分享,不足之处还望大牛多多指教。 令operator=返回一个reference to*this          为什么要这么做呢?看个例子吧,如x = y = z = 1,这是一个赋值表达式,由于赋值表达式可以写成连锁形式,而且也是遵循右结合律的,所以在实现赋值运算符时都必须返回一个this的引用。其实这一条款说的有些教条化,但是这个需

2012-09-08 17:29:29 175

原创 Effective C++学习笔记 (9)

本人学习C++不精,故重新学习,点滴记录与大家分享,不足之处还望大牛多多指教。 条款9:绝不在构造函数和析构函数过程中调用virtual函数          当初面试遇到的面试题,后悔看完了,今天一看觉得当时回答的一塌糊涂。          先看代码吧。                   汇编如下:          在父类的构造函数中调用output虚函

2012-09-05 23:03:28 146

原创 Effective C++学习笔记 (8)

本人学习C++不精,故重新学习,点滴记录与大家分享,不足之处还望大牛多多指教。 别让异常逃离析构函数          其实看完改条款我的理解不是很深,下来自己想了下还是有所领悟。为什么析构函数里最好不要抛出异常,其实原因可以这样理解,一个对象的析构函数是在该对象离开作用域之后调用的,所以这个时候不是所有的外部调用都会去处理这个异常的,如果没人处理那么很可能程序就crash了,出错了等

2012-09-05 22:05:12 178

原创 Effective C++学习笔记 (7)

本人学习C++不精,故重新学习,点滴记录与大家分享,不足之处还望大牛多多指教。 条款7:为多态基类申明virtual析构函数          其实该条款在任何一门C++课堂上老师都会讲到,把基类的析构函数申明为virtual的,这样一来在接口释放时候子类才能被正真析构。 1、  先来看看编译器是如何帮我们实现的,对于基类析构函数不为虚函数的情况 代码和编译生成的汇编如下:

2012-09-05 00:59:11 166

原创 Effective C++学习笔记 (6)

本人学习C++不精,故重新学习,点滴记录与大家分享,不足之处还望大牛多多指教。 若不想使用编译器自动生成的函数,就该明确拒绝          其实本条款讲的比较简洁,由于条款5说明了“默认构造函数”、“拷贝构造函数”、“复制运算符”这三个虽然用户不自己定义,但是用到的时候编译器还是会为它们生成代码,所以就导致了一些情况下, 用户不想提供拷贝构造函数,但是编译器默认生成了,解决这类问题主要

2012-09-04 00:56:46 162

原创 Effective C++学习笔记 (5)

本人学习C++不精,故重新学习,点滴记录与大家分享,不足之处还望大牛多多指教。 了解C++默默编写并调用哪些函数          在你编写一个空类的时候,C++其实为你默默编写了这几个函数:默认构造函数、拷贝构造函数、赋值运算符以及析构函数(非virtual的)。这几个函数只有当你需要时才会被编译器创建出来。 1、  实践代码如下: 汇编如下: 2、  对于

2012-09-04 00:54:13 189

原创 Effective C++学习笔记 (4)

本人学习C++不精,故重新学习,点滴记录与大家分享,不足之处还望大牛多多指教。 确定对象被使用前已先被初始化          讲述了几种对象的初始化的方法,如类的自定义成员变量、C++内置类型变量的初始化、继承中的成员变量初始化、static对象的初始化。 1、  对了类的成员变量初始化,建议在构造函数里使用初始化列表进行初始化,如果有赋值操作的话可以在构造函数内部完成。需要区分开“初

2012-09-04 00:36:47 488

原创 Effective C++学习笔记 (3)

本人学习C++不精,故重新学习,点滴记录与大家分享,不足之处还望大牛多多指教。 尽可能使用const 从const在变量、对象、函数参数、函数返回值、成员函数上都可以应用。 1、 在变量和对象上: A、constchar *p = “abc”                 //数据const,指针non const char * const p = “abc”

2012-09-04 00:32:06 208

原创 Effective C++学习笔记 (2)

本人学习C++不精,故重新学习,点滴记录与大家分享,不足之处还望大牛多多指教。 尽量以const、enum、inline、替换#define 1、#define在编译器之前先由预编译器做替换; 2、所以PDB里没有#define; 3、#define重复定义,出现多分,可能出现不同的值; 4、const存在类型检查; 5、const成员可以封装,比如在一个class里面定义一个st

2012-09-04 00:30:30 175

原创 Effective C++学习笔记 (1)

本人学习C++不精,故重新学习,点滴记录与大家分享,不足之处还望大牛多多指教。 视C++为一个语言联邦 主要把C++分为四个部分吧: 1、 C:一种支持过程形式、函数形式编程的语言; 2、 Object-OrientedC++:面向对象形式的语言; 3、 TemplateC++:泛型编程、模版元编程; 4、 STL:用STL代替了一类template程序库; 付:其实个人对3

2012-09-04 00:28:18 198

空空如也

空空如也

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

TA关注的人

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