您好、欢迎来到现金彩票网!
当前位置:棋牌游戏 > 文件句柄 >

c++中 句柄类是什么

发布时间:2019-06-27 02:11 来源:未知 编辑:admin

  可选中1个或多个下面的关键词,搜索相关资料。也可直接点“搜索资料”搜索整个问题。

  句柄类(智能指针smart point)是存储指向动态分配(堆)对象指针的类。除了能够在适当的时间自动删除指向的对象外,工作机制很像C++的内置指针。智能指针在面对异常的时候格外有用,因为能够确保正确的销毁动态分配的对象。也可以用于跟踪被多用户共享的动态分配对象。

  在C++中一个通用的技术是定义包装(cover)类或句柄(handle)类,也称智能指针。句柄类存储和管理基类指针。指针所指向对象的类型可以变化,它既可以指向基类类型对象又可以指向派生类型对象。用户通过句柄类访问继承层次的操作。因为句柄类使用指针执行操作,虚成员的行为将在运行时根据句柄实际绑定的对象类型而变化,即实现c++运行时动态绑定。故句柄用户可以获得动态行为但无需操心指针的管理。

  展开全部VC 中的句柄 HANDLE 其实是一个 void * 类型。像 C 语言中的 FILE 一样,它是个结构体,FILE * 其实是一个结构体地址类型。句柄在 Windows 系统中类似于指针,它就是个指针类型,但是又和指针不同。比如分配一块可移动的内存,你可以得到一个固定的句柄,但是这块内存的指针是不固定的。句柄还有其他很多种,都是通过 HANDLE 定义而来的。在 Windows 编程中,句柄代表系统中唯一一个对象,比如文件句柄、图标句柄、字体句柄、位图句柄、画刷句柄、设备环境句柄、应用程序模块句柄、进程句柄、窗口句柄等。由于 Windows 是封闭的,微软提供很多现成的函数(Windows API),句柄就是访问这类对象的一个 指针,通过句柄才能访问这些对象。

  展开全部《c++ 编程思想》第1卷:标准c++导引——第五章:句柄类(handle class),或称为“cheshire cat”。作用主要是用来隐藏接口的实现部分,和减少项目的重新编译。

  展开全部和JAVA里的代理概念是一致的,C++使用类的时候必须在头文件中把类声明一遍,这样只要看头文件这个类的所有方法名和成员变量名就都曝光了,极大的损害了封装性质,因此就诞生了句柄了。因为用户是无法查看实现文件的(但是可以查看声明文件)。在头文件里只是声明一个外壳类,而在实现文件中把真正的类和实现写上,在用声明的外壳调用,举例如下:

  class a{//a是外壳类(JAVA中称为代理类,b才是真正要用的类)

  如上,可以看出,真正发挥作用的是class b;但是如果检查头文件的话,我们无法知道class b到底有哪些方法有哪些性质,这样就完善了C++的封装性!

http://neillarcherroan.com/wenjianjubing/318.html
锟斤拷锟斤拷锟斤拷QQ微锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷微锟斤拷
关于我们|联系我们|版权声明|网站地图|
Copyright © 2002-2019 现金彩票 版权所有