发布网友 发布时间:2024-10-23 21:09
共4个回答
热心网友 时间:1天前
多态:同一对象接受不同消息 做出不同反应..
你的意思为什么要引入多态,直接用对象来表示就行了对吧?
多态最大的优点就是引入了指针,而且能完整执行任何一个函数..
指针的优点就不用说了吧..
回忆一下 前面的数组时 引入指针,同样都可以用数组来表示对吧...
为什么要用指针:在想想数据结构 表 树等,用指针是否方便很多...
另:你问题不就是 本来可以直接用对象来表示(就是上面说的静态约束,书上的内容跟一楼差不多内容),为什么要用动态约束 也就是用指针来表示吗?所以我告诉你指针的好处啊..你同学说的 就只使用一个统一的接口 (在这里也是靠指针来实现) 也是书上的原话吧? 貌似你该看看书了..
热心网友 时间:1天前
我也是个初学者,谨供参考哈。
当使用Virtual关键字时,其调用公共接口函数是根据指针pa所指向的对象类型进行调用的,它是在程序的“执行”时选择的,而不是在“编译”时就选择的,即“动态约束”,而oa10.display();oa11.display();的调用是在“编译”时就确定好的,属于“静态约束”,正确的函数调用应该是在执行时选择的,所以感觉上你那个方法更感觉,但事实上用Virtual虚函数才更好。
热心网友 时间:1天前
LZ可以考虑下列两场景:
1、oa10是张三写的,3年后,张三早已离职,李四接手维护,需要实现oa11;
2、oa10是中国王二写的,只提供库,没有源代码,美国的赵五做项目,需要改动display()的功能。
或许,LZ会理解会什么要引入多态。
热心网友 时间:1天前
如果不理解虚函数的运行时多态,就是根本不理解面对对象的好处。
建议楼主从实际出发,多看别人的有实际意义的代码加深理解。