句柄类
C++中面向对象编程的一个颇具讽刺意味的地方是,不能使用对象支持面向对象编程,而必须使用指针或引用,即通过pointer和reference进行的调用在运行时根据它们所绑定对象的动态类型而确定。
C++中一个通用的技术是定义包装(cover)类或句柄(handle)类。句柄类存储和管理基类指针,指针所指对象的类型可以变化,既可以指向基类对象又可以指向派生类对象。用户通过句柄类访问继承层次的操作,因为句柄类使用指针执行操作,虚成员的行为将在运行时根据句柄实际绑定的对象的类型而变化。因此,句柄的用户可以获得动态行为但无须操心指针的管理。