无需指针和引用的多晶象:一个神话
[如果您在堆上分配内存,您就会有动态绑定,”一个人可能会想。虽然是真的,但单纯的记忆分配不足以完成多态性。以一个示例: 派生d; base* b =&d;
语义:多态性的关键当您创建基类指针或对派生类实例的引用时,您可以有效地保留对派生类方法的访问。考虑:
base c = derived();尽管C是基础的一个实例,但它不能表现出多态行为,因为它存储了派生的对象的切片版本,失去了派生的类标识。间接指针提供了额外的灵活性。它们允许您指向任何类型的对象,包括基本和派生类。相比之下,引用只能绑定到特定类型的对象,限制其多态性功能。结论[&&&&&&&&&&&&&&&&&&&&&& && &&&&&&&&& &&&&&&&&&& &&&&&&&&&& &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&华素质很多很大,或参考率有很多)。使用指示器和参考文献可确保编译器维护必要的类型信息,从而可以动态地分解您的代码中的方法和真实的多态行为。
免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。
Copyright© 2022 湘ICP备2022001581号-3