摘要: 这是我最近学习C++沉思录所作的笔记和感想。本文主要讲解了第二种handle(句柄)的写法。在前文handle part1的部分我讲了一种handle的设计方法。但是那个handle有一个缺点,就是必须要分离出来一个UPoint类做为计数,十分的不方便。这意味着每个类都要单独的出来一个UPoint。而这个UPoint仅仅只是作为计数作用。在本文中,我们将要设计一种新的写法,利用UseCount类来为Handle所指的对象计数,同时减少UPoint类,同时简化Handle的写法。在前文中,我们知道了Handle类需要计数。通过计数和指针来完成减少复制,达到优化的目的。上文的写法: 1 class 阅读全文
posted @ 2011-12-07 14:08 marchtea 阅读(4937) 评论(0) 推荐(0) 编辑
摘要: 本文是我学习C++沉思录第6章的笔记本文主要讲述了Handle类的概念,定义方法以及写时复制技术。在前文(Surrogate代理类)的讲解中我们了解到了代理的实现方法.代理类有很多好处,但是麻烦的是每次都得进行复制.如果该类是经常使用并且member很多的话,这样复制的消耗是十分客观的.因此这里就要介绍另外一种代理类,Handle,也就是句柄类.为何使用句柄类?首先就是复制问题.前面有谈到,有些类内部数据很多,采用复制消耗非常大,这种情况下就必须采用句柄类来进行操作.其次是由于函数的参数和返回值都是采用了复制进行自动传递.虽然c++中引用可以避免,但是很多情况下返回值采用引用并不明智.对于采用 阅读全文
posted @ 2011-12-04 16:26 marchtea 阅读(32769) 评论(0) 推荐(1) 编辑
摘要: 这篇博客是我在学习C++沉思录的第5章做的笔记。本文主要讲了C++中代理类的使用方法和使用情况。所谓代理类,即surrogate.为什么要使用它呢,简单的举个例子. 1 class Vehicle 2 { 3 public: 4 Vehicle(){} 5 virtual string getName()= 0; 6 }: 7 8 class Car : public Vehicle 9 {10 public:11 Car(){}12 virtual string getName(){}13 };14 15 class Bike : public Bike16 {... 阅读全文
posted @ 2011-12-04 01:22 marchtea 阅读(7835) 评论(3) 推荐(2) 编辑
摘要: 终于在cnblogs上安家了.~~~先写个...随便写的啊~~~以后把学习的心得发到这来~~希望大家支持~~~也给自己一个鼓励吧~ 阅读全文
posted @ 2011-10-31 20:07 marchtea 阅读(201) 评论(2) 推荐(0) 编辑