使用继承的时候,当派生类产生出来以后,突然要改变基类的时候,例如基类已经存在的控件改变了(删除,或者换成别的控件),因此派生类当然也得必须跟着改变。但是事实上,其它模块很少会自动改变的,这个没意见,但是改变了以后,编译的时候没有任何问题,却在运行的时候出现了某个内存访问权错误。想听听大家在使用继承的时候,该尽量避免些什么问题?如何解决?

解决方案 »

  1.   

    基类设计是最富技巧性和抽象性的,设计好的基类一般不轻易改变,可以像VCL那样多加几个层次,派生时会更方便的!
      

  2.   

    哦哦哦!唉,不知道这是谁的责任了,不过好像Java那样的话,那就好了,每一步都在代码里面全部描述出来,而我怀疑Delphi之所以出问题,好像就是在于它dfm文件。大家所想的和我想的也差不多,基类模块封装的是函数多,派生类多是处理外表的多点!我想可能是这样的吧。
      

  3.   

    应该跟基类是没有关系的..可能你继承类的实现细节上有问题..违反了它的规则..
    DELPHI到现在都N版本了..不太可能有这种错误..
      

  4.   

    就举个例子,一个共用窗体,里面有一个Tlabel控件!它有很多派生类,当我的主窗体删除了那个TLabel控件的时候,而不打开它的派生类,那么运行的时候就会出错了,如果设计的时候,打开派生类的模块的时候就会有提示,说某个控件丢失了,提示是删除还是改名了!
      

  5.   

    就举个例子,一个共用窗体,里面有一个Tlabel控件!它有很多派生类,当我的主窗体删除了那个TLabel控件的时候,而不打开它的派生类,那么运行的时候就会出错了,如果设计的时候,打开派生类的模块的时候就会有提示,说某个控件丢失了,提示是删除还是改名了!
    ----------------
    这当然了  比如:你向某个人借了100W给他,他当时收到了(显示在界面上),并且记录在案(存放在文件中),可是你后来悄悄的把那100W拿回来了,而他按照先前的记录去获取的时候,却发现找不到了,他不跟你急才怪,自然会出问题..
      

  6.   

    beyondtkl(大龙驹<暗黑系魔法师--戒急用忍&&学习爱情template>) 恩恩!你说的是,因为摆放在一个窗体上的那个已经是一个类的实例了,而并不是一个类了,好了!理解,谢谢各位哦!