正在阅读:面向对象编程,我的思想(下)面向对象编程,我的思想(下)

2004-06-01 10:14 出处:CSDN 作者:flashmagic 责任编辑:linjixiong

  
  虚拟函数在C++中非常好玩的事。我们可以把需要改写的函数声明为虚函数,用virtual这个关键字来声明。这样。假如如果我们CwinApp这么一个基类,它里面定义了一个成员(虚)函数为InitInstance()和另一个为(虚)函数InitApplication()。如果我从CWinApp派生一个子类为CMyWinApp并修改了InitInstance()这个成员函数。我们并没有修改InitApplication()这个成员函数。现在我们创建CMyWinApp这个类的函数theApp,我们并创建一个指针*pApp指向这个对象theApp。此时:
  
  pApp->InitInstance() //指针调用的是子类CMyWinApp的虚方法
  
  pApp->InitApplication() //指针调用的时父类CwinApp的虚方法
  
  因为子类并没有修改父类的方法,所以调用的是父类的虚方法。这就牵扯到虚你表的问题。碍与本篇文章的定位,这里就不讨论了!
  
    关于父类与子类的对象的类型转换问题是这样的,子类对象转换为父类对象时,不会出现错误。因为子类包含父类的所有的属性及方法,而父类向子类转换时就难说了,呵呵。这还会牵扯到虚拟表的问题,也不讨论了!
  
  JAVA中不再支持多重继承,也就是一个类从两个以上的类中继承而来,但它却多了接口的概念“interface”。这里就不做过多介绍了!
  
  关于抽象基类也没什么难的!他的一个大概念就是:做为许多类的父类,不定义对象,只做派生用!
  
我能做得也只有这些了,如果你能明白以上的六七成,那就是对我最大的回报了,呵呵!就像刚刚开始我说的,我只是给你一个大概的思想,至于内部的实现细节,仍需要你的继续努力。关于编程语言的内容还有许多许多,实属小生个人能力有限而不能全盘照顾到。不过作为一个初学者的你来说,这些东西都是基本的。需要我提醒你一点的是,不要指望在第一、二遍的时候看懂什么!加油:)
  04.4.29 韩景维
  
  愿意和大家保持联络,如果大家能够对本篇文章提出宝贵的意见和建议,我将不胜感激。我的电子邮件地址是:
  
  onegenius@126.com
  
  或在QQ里给我留言(86228551---乱码游魂.h)
  


察看评论详细内容 我要发表评论
作者笔名简短内容 发表时间
:
键盘也能翻页,试试“← →”键

关注我们

最新资讯离线随时看 聊天吐槽赢奖品