10.7 新类和动态关联
优质
小牛编辑
132浏览
2023-12-01
对于预先知道所有可能的类的系统来说,多态性和虚函数当然会运行得很好,但是当向系统中添加各种各样的新类时,它们同样也会运行得很好。动态关联(也叫滞后关联)允许向系统中添加新类。对于要被编译的虚函数调用来说,编译时可以不必知道对象的类型。在运行时,虚函数调用和被调用对象的成员函数相匹配。
屏幕管理程序可以不经过重新编译就可以处理添加到系统中的新的显示对象,draw函数的调用还是和原来的一样,新对象自己包含了实际的显示能力,这样就可以很容易地给系统增加功能,同时也鼓励软件复用。
动态关联可以使独立软件供应商(ISV)在不透露其秘密的情况下发行软件。发行的软件可以只包括头文件和对象文件,不必透露源代码。软件开发者可以利用继承机制从ISV提供的类中派生出新类。和ISV提供的类一起运行的软件也能够和派生类一起运行,并且能够通过动态关联使用这些派生类中重定义的虚函数。
109节将介绍综合的多态性实例研究。10.10 节将深入介绍多态、虚函数与动态关联如伺在 C++ 中实现。