会员
周边
新闻
博问
闪存
众包
赞助商
Chat2DB
所有博客
当前博客
我的博客
我的园子
账号设置
会员中心
简洁模式
...
退出登录
注册
登录
HarlanC
生有涯,知无涯。
博客园
首页
新随笔
联系
订阅
管理
上一页
1
···
7
8
9
10
11
12
13
14
下一页
2017年2月19日
读书笔记 effective c++ Item 14 对资源管理类的拷贝行为要谨慎
摘要: 1. 自己实现一个资源管理类 Item 13中介绍了 “资源获取之时也是初始化之时(RAII)”的概念,这个概念被当作资源管理类的“脊柱“,也描述了auto_ptr和tr1::shared_ptr是如何用堆资源来表现这个概念的。然而并不是所有资源都是在堆上创建的,对于这种资源,像auto_ptr和t
阅读全文
posted @ 2017-02-19 09:32 HarlanC
阅读(731)
评论(0)
推荐(0)
2017年2月18日
读书笔记 effective c++ Item 13 用对象来管理资源
摘要: 1.不要手动释放从函数返回的堆资源 假设你正在处理一个模拟Investment的程序库,不同的Investmetn类型从Investment基类继承而来, 进一步假设这个程序库通过一个工厂函数(Item 7)来给我们提供特定Investment对象: 正如注释所表述的,当createInvesmen
阅读全文
posted @ 2017-02-18 07:56 HarlanC
阅读(927)
评论(0)
推荐(0)
2017年2月17日
读书笔记 effective c++ Item 12 拷贝对象的所有部分
摘要: 1.默认构造函数介绍 在设计良好的面向对象系统中,会将对象的内部进行封装,只有两个函数可以拷贝对象:拷贝构造函数和拷贝赋值运算符。我们把这两个函数统一叫做拷贝函数。从Item5中,我们得知,如果需要的话编译器会为你生成这两个拷贝函数,并且编译器生成的版本能够精确的做到你想做的:它们拷贝了对象的所有数
阅读全文
posted @ 2017-02-17 07:42 HarlanC
阅读(761)
评论(1)
推荐(0)
2017年2月15日
读书笔记 effective c++ Item 11 在operator=中处理自我赋值
摘要: 1.自我赋值是如何发生的 当一个对象委派给自己的时候,自我赋值就会发生: 这看上去是愚蠢的,但这是合法的,所以请放心,客户端是可以这么做的。此外,自身赋值也并不总是很容易的能够被辨别出来。举个例子: 上面的代码在i和j相等的情况下就是自我赋值,同样的,看下面的例子: 如果px和py恰巧指向同一个东西
阅读全文
posted @ 2017-02-15 23:48 HarlanC
阅读(852)
评论(0)
推荐(0)
读书笔记 effective c++ Item 10 让赋值运算符返回指向*this的引用
摘要: 一个关于赋值的有趣的事情是你可以将它们链在一起: 同样有趣的是赋值采用右结合律,所以上面的赋值链被解析成下面这个样子: 在这里,15被赋值给z,然后赋值的结果(更新的z)被赋值给y,再然后赋值的结果(更新的Y)被赋值给x。 实现这个赋值链的方法是使赋值返回指向左边参数的引用,这也是你在为你的类实现赋
阅读全文
posted @ 2017-02-15 23:42 HarlanC
阅读(668)
评论(0)
推荐(0)
读书笔记 effective c++ Item 9 绝不要在构造函数或者析构函数中调用虚函数
摘要: 1.关于构造函数的一个违反直觉的行为 我会以重复标题开始:你不应该在构造或者析构的过程中调用虚函数,因为这些调用的结果会和你想的不一样。如果你同时是一个java或者c#程序员,那么请着重注意这个条款,因为这是c++同它们不一样的地方。 假设你已经有一个为股票交易建模的类继承体系,它可以买卖股票等。这
阅读全文
posted @ 2017-02-15 00:04 HarlanC
阅读(1205)
评论(0)
推荐(0)
2017年2月14日
读书笔记 effective c++ Item 8 不要让异常(exceptions)离开析构函数
摘要: 1.为什么c++不喜欢析构函数抛出异常 C++并没有禁止析构函数出现异常,但是它肯定不鼓励这么做。这是有原因的,考虑下面的代码: 当vector V被销毁,V有责任将它包含的所有Widgets都销毁。假设v含有有10个Widgets对象,当销毁第一个Widgets对象时,抛出了一个异常。其余的9个仍
阅读全文
posted @ 2017-02-14 07:34 HarlanC
阅读(1100)
评论(0)
推荐(0)
2017年2月13日
读书笔记 effective c++ Item 7 在多态基类中将析构函数声明为虚析构函数
摘要: 1. 继承体系中关于对象释放遇到的问题描述 1.1 手动释放 关于时间记录有很多种方法,因此为不同的计时方法创建一个TimeKeeper基类和一些派生类就再合理不过了: 许多客户端只想访问时间而不想知道关于时间计算的细节,所以可以创建一个工厂方法,这个工厂方法返回一个指向新创建的派生类对象的基类指针
阅读全文
posted @ 2017-02-13 19:01 HarlanC
阅读(1049)
评论(0)
推荐(1)
读书笔记 effective c++ Item 6 如果你不想使用编译器自动生成的函数,你需要明确拒绝
摘要: 问题描述-阻止对象的拷贝 现实生活中的房产中介卖房子,一个服务于这个中介的软件系统很自然的会有一个表示要被销售的房屋的类: 每个房产中介会立刻指出来,要销售房屋的每个属性都是唯一的,没有两个完全一样的房屋。在这种情况下,拷贝一个HomeForSale对象就没有任何意义了。你在怎么能拷贝一些独一无二的
阅读全文
posted @ 2017-02-13 09:03 HarlanC
阅读(1382)
评论(0)
推荐(1)
2017年2月12日
读书笔记 effective c++ Item 5 了解c++默认生成并调用的函数
摘要: 1 编译器会默认生成哪些函数 什么时候空类不再是一个空类?答案是用c++处理的空类。如果你自己不声明,编译器会为你声明它们自己版本的拷贝构造函数,拷贝赋值运算符和析构函数,如果你一个构造函数都没有声明,编译器同样会为你声明一个默认拷贝构造函数。这些所有的函数会是public和inline的(Item
阅读全文
posted @ 2017-02-12 12:25 HarlanC
阅读(1441)
评论(0)
推荐(0)
上一页
1
···
7
8
9
10
11
12
13
14
下一页
公告