当我们希望使用容器来保存继承体系中的对象时,容器用于继承体系中的类型会有影响:派生类对象复制到基类对象时,派生类对象将被切掉。那么解决这一问题的方法通常是使用容器保存基类对象的指针,这些指针实际指向的是程序运行时动态分配的派生类对象,用户必须保证在容器析构前调用delete来释放动态分配的对象,.....
分类:
其他好文 时间:
2014-12-12 10:04:35
阅读次数:
124
之前文章中实现的写时复制,句柄类中引用计数和T类型指针是分开的,这里换一种方式来处理,将引用计数和T类型指针视为一个整体,当做句柄类模板参数。先对上节中的引用计数进行改造: 1 class CUseCount 2 { 3 public: 4 CUseCount(); 5 ...
分类:
其他好文 时间:
2014-10-22 19:55:51
阅读次数:
241
之前文章提到写时复制(copy-on-write)技术,要实现这种功能,针对上文中Handle代码,需要将size_t * use这个抽象出来,封装成一个引用计数类,提供写时复制功能。CUseCount类实现如下: 1 class CUseCount 2 { 3 public: 4 ...
分类:
其他好文 时间:
2014-10-22 06:23:50
阅读次数:
208
句柄类/智能指针(smart point)是存储指向动态分配(堆)对象指针的类。除了能够在适当的时间自动删除指向的对象外,他们的工作机制很像C++的内置指针。句柄类实际上是通过复制指向引用计数器类型的指针,来代替复制实际对象;从而使得复制对象变成复制指针,实现虚拟复制(即是用复制对象的地址代替复.....
分类:
其他好文 时间:
2014-10-21 16:51:15
阅读次数:
205
1.简单重定义的 如LPCSTR只字符串,只是名字不同2.句柄类型H开头的句柄3.结构体类型如对话框4.重新更名一方面为了32位-》64位升级时带来的麻烦typedef unsigned long DWORD;typedef int BOOL;typedef uns...
前一小节《容器与继承》http://blog.csdn.net/thefutureisour/article/details/7744790提到过:对于容器,假设定义为基类类型,那么则不能通过容器訪问派生类新增的成员;假设定义为派生类类型,一般不能用它承载基类的对象,即使利用类型转化强行承载,则基类...
分类:
其他好文 时间:
2014-09-25 00:37:27
阅读次数:
238
what 列出当前目录或指定目录下的M\MAT 和 MAX 文件… 在语句行尾端表示该行未完! 调用操作系统的命令isvarname 判断变量名是否有效声明全局变量 变量名前加 globalwhos 查看数据的类型函数句柄类型:fhandle=@functionname; fhandle 指针名 f...
分类:
其他好文 时间:
2014-09-11 22:20:42
阅读次数:
202
首先Message(消息)类不用多说,内部用what(啥)属性来存放标识符,用obj(对象)来存放要携带的数据,用target(目标)来存放目标Handler。 所以需要有一个Handler(句柄)类来处理Message,方法是调用Handler类中的sendMessage(Message)方...
分类:
移动开发 时间:
2014-09-02 22:48:35
阅读次数:
349
前一小节《容器与继承》http://blog.csdn.net/thefutureisour/article/details/7744790提到过:对于容器,假设定义为基类类型,那么则不能通过容器訪问派生类新增的成员;假设定义为派生类类型,一般不能用它承载基类的对象,即使利用类型转化强行承载,则基类...
分类:
其他好文 时间:
2014-08-29 12:36:57
阅读次数:
181
头文件
/**
* 功能:句柄类,头文件只包含公共的接口和单一的指针,该指针指向一个没有
完全定义的类
* 时间:2014年8月25日07:52:42
* 作者:cutter_point
*/
#ifndef HANDLE_H_INCLUDED
#define HANDLE_H_INCLUDED
class Handle
{
struct Cheshire; //...
分类:
编程语言 时间:
2014-08-25 10:07:34
阅读次数:
240