对于WINDOWS来说,可以是任意值
对于C++来说可以认为是封装资源的类
---------------------------------------------------------------
句柄是个指针,但它是个二级指针(指向指针的指针).如果你拥有了一个对象的句柄. 你就可以操作对象的所有公共方法.
---------------------------------------------------------------
handle(句柄)是服务的推广。比如你去某快餐店吃饭,先去选餐,选完以后付款,服务
员给你一个号,然后他就可以转向下一位顾客。当厨房把你的餐做出来了,厨房并不认识
你,但是每个餐上有个号,根据这个号,厨房把你的餐送到。这个号就是handle,是服务
约定的标志。你甚至因为等烦了可以拿这个号去厨房催促。这个标志,在一定的时间空间
内是唯一的。比如,在同样的时间内,在该快餐店的另外一家连锁分店可以在为表面上相
同的号服务,但是这两个号是分开处理的,不会张冠李戴。同样,你吃完饭离开该店,那
号并不会随你离开,还会随机地分配给后来的客户。
handle的好处在于,你不需要管它背后是怎么实现的。它可以是用指针,也可以是用表格
。这些完全不用你管,你也绝对不应该去关心它具体是如何实现的(当然原理上你可以学习
技术)。因为这个技术本身就是隔绝实现和应用的直接耦合。
---------------------------------------------------------------
整型,对象的唯一标示
---------------------------------------------------------------
在32位环境中,每个程序都是独立的,你的指针可以任意指向一个地方,但是总是操作你这个空间的那个指针,句柄不同,你获得了他,就可以操作别的程序的东西。
---------------------------------------------------------------
句柄是操作系统在生成对象时分配给对象的唯一标识!
通过句柄可以获取操作系统提供的服务!
句柄不同于指针,如果你得到一个对象的指针,那你就可以在此对象上为所欲为!那操作系统就惨了!于是系统不给你指针,而给你一个加了限制的,用于跟踪对象的指针的标识——句柄!系统使用句柄向外提供服务就相对安全了!
操作系统是通过API提供服务的,对于用户来说,句柄等同于对象指针,但实际上句柄和指针根本不是一回事
---------------------------------------------------------------
句柄既有指针的便利性,又消除了指针缺点,比如可能delete一个无效的指针
---------------------------------------------------------------
其实句柄还是很好理解,它主要用在两个地方。
1。 减少编译量: 通常的编译,总是包括所有文件(*.h+*.cpp),如果你改动的是CPP文件(而且通常是这样), 你就要编译包括头文件在内的全部文件。 如果你在头文件中定义一个handle,你就可以在cpp中用一个指针指向它, 编译的时候可以避免冗长的编译。
2。 隔离信息量:因为头文件一般来讲总是对用户公开的,你可通过handle将关键实现部分封装在cpp中,编译后得到的全是obj, 这样,可实现隐藏细节。
---------------------------------------------------------------
总的来说句柄类就是一个非继承的类,目的就是为了屏蔽一个类层次结构很多类.
也就是说你操作一个句柄类就可以控制一个属于类层次结构具体类,这样你就以同一的接口消除了层次结构的不同,而且可以把资源控制等很多底层的操作放在具体实现类上面而句柄类对于用户来说不存在这样复杂的问题,用户只需要用句柄类提供的简单接口就可以了.
---------------------------------------------------------------
就是某个对象的指针,
通过句柄就可以引用该对象。
对于C++来说可以认为是封装资源的类
---------------------------------------------------------------
句柄是个指针,但它是个二级指针(指向指针的指针).如果你拥有了一个对象的句柄. 你就可以操作对象的所有公共方法.
---------------------------------------------------------------
handle(句柄)是服务的推广。比如你去某快餐店吃饭,先去选餐,选完以后付款,服务
员给你一个号,然后他就可以转向下一位顾客。当厨房把你的餐做出来了,厨房并不认识
你,但是每个餐上有个号,根据这个号,厨房把你的餐送到。这个号就是handle,是服务
约定的标志。你甚至因为等烦了可以拿这个号去厨房催促。这个标志,在一定的时间空间
内是唯一的。比如,在同样的时间内,在该快餐店的另外一家连锁分店可以在为表面上相
同的号服务,但是这两个号是分开处理的,不会张冠李戴。同样,你吃完饭离开该店,那
号并不会随你离开,还会随机地分配给后来的客户。
handle的好处在于,你不需要管它背后是怎么实现的。它可以是用指针,也可以是用表格
。这些完全不用你管,你也绝对不应该去关心它具体是如何实现的(当然原理上你可以学习
技术)。因为这个技术本身就是隔绝实现和应用的直接耦合。
---------------------------------------------------------------
整型,对象的唯一标示
---------------------------------------------------------------
在32位环境中,每个程序都是独立的,你的指针可以任意指向一个地方,但是总是操作你这个空间的那个指针,句柄不同,你获得了他,就可以操作别的程序的东西。
---------------------------------------------------------------
句柄是操作系统在生成对象时分配给对象的唯一标识!
通过句柄可以获取操作系统提供的服务!
句柄不同于指针,如果你得到一个对象的指针,那你就可以在此对象上为所欲为!那操作系统就惨了!于是系统不给你指针,而给你一个加了限制的,用于跟踪对象的指针的标识——句柄!系统使用句柄向外提供服务就相对安全了!
操作系统是通过API提供服务的,对于用户来说,句柄等同于对象指针,但实际上句柄和指针根本不是一回事
---------------------------------------------------------------
句柄既有指针的便利性,又消除了指针缺点,比如可能delete一个无效的指针
---------------------------------------------------------------
其实句柄还是很好理解,它主要用在两个地方。
1。 减少编译量: 通常的编译,总是包括所有文件(*.h+*.cpp),如果你改动的是CPP文件(而且通常是这样), 你就要编译包括头文件在内的全部文件。 如果你在头文件中定义一个handle,你就可以在cpp中用一个指针指向它, 编译的时候可以避免冗长的编译。
2。 隔离信息量:因为头文件一般来讲总是对用户公开的,你可通过handle将关键实现部分封装在cpp中,编译后得到的全是obj, 这样,可实现隐藏细节。
---------------------------------------------------------------
总的来说句柄类就是一个非继承的类,目的就是为了屏蔽一个类层次结构很多类.
也就是说你操作一个句柄类就可以控制一个属于类层次结构具体类,这样你就以同一的接口消除了层次结构的不同,而且可以把资源控制等很多底层的操作放在具体实现类上面而句柄类对于用户来说不存在这样复杂的问题,用户只需要用句柄类提供的简单接口就可以了.
---------------------------------------------------------------
就是某个对象的指针,
通过句柄就可以引用该对象。