利用父类指针如何调用继承类对象方法 从父类TShap继承出三个类TEllipse,TRect,TLine.父类中的virtual方法draw(),都重载了如何利用父亲类的对象,或指针调用继承类对象的draw().AllObjLink:TObjectList;链表中无续保存了三个类的对象,遍历链表调用每一对象的draw()方法,需把AllObjLink[i]转换为对应的类型,能不能转换成父类型,利用父类型对象调用子类型方法? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 AllObjLink[i] as TLine或TLine(AllObjLink[i]) 从链表中取得的对象,不能确定是TLine,TEllise还是TRect,所以不能用TLine(AllObjLink[i])或AllObjLink[i] as TLine有什么办法办法确定对象的具体类,然后转换也行。最好是TShap(AllObjLink[i]).Draw,但这样调用的是父类的Draw(),如何通过父类调用子类方法。大狭们请教了。 HsWong的方法对的,子类override父类virtual然后将对象转换为父类类型,调用父类virtual方法自动为子类方法,子类重载时override 变为overload,不能用virtual的父类方法调用子类方法。 fangming120(鸭梨) 同志郁闷了,散分以顶.外加处女帖.散分~~ 我用Agent 控件..为嘛没有声音? 请问stringgrid能实现隔行选吗,怎么做 两个整数相除后取整和取余数的函数是什么? 如何解决数据更新时出错? 请问哪有dephi的下载地址 怎么用suipack里的suimessagedialog??(初级) string类型的问题? 計算字段的數值類型可以設為字符型嗎﹖ 有人愿意帮我远程调试下代码吗? 一个数据库操作在有的机上出现问题,有没有人遇到过? ********请高人指点:Dbgrid 弹出的右键菜单问题?**************
从链表中取得的对象,不能确定是TLine,TEllise还是TRect,所以不能用
TLine(AllObjLink[i])或
AllObjLink[i] as TLine
有什么办法办法确定对象的具体类,然后转换也行。最好是
TShap(AllObjLink[i]).Draw,
但这样调用的是父类的Draw(),如何通过父类调用子类方法。
大狭们请教了。
然后将对象转换为父类类型,调用父类virtual方法自动为子类方法,子类重载时override 变为overload,不能用virtual的父类方法调用子类方法。