现在的位置: 首页 > 综合 > 正文

Virtual的理解

2013年02月18日 ⁄ 综合 ⁄ 共 622字 ⁄ 字号 评论关闭

关于virtual的理解

  1. C++课程学习后,觉得这个概念非常难以理解;
  2. 经过n年的C++开发经验后,开始了解virtual和函数重载结合后的威力,理解的高度上升为:
    基类中可以调用子类中重定义的由基类声明为virtual的函数”,没有virtual,我们无法做到这一点。
    这个理解没有错,可是如果没有深入的认识,只能和我们说“OO?就是Encapsulation,Inheritance,Polymorphism”一样的正确却无用……

    在MFC中发现了许多使用virtual的例子,包括和消息映射函数的结合。可能有很多MFC的初学者没有认真的考虑过一个简单又有趣的问题,CDialog的派生类中OnOK()函数和virtual的关系,这是下面的一个帖子。

  3. 面试时被询问到使用virtual修饰基类,即
    class CDerived: virtual public CBase{
        ……
    };
    的意义,只好老实的回答不知道,痛苦啊!回来后立刻到MSDN中查找,终于明白了,唉。
    以后的帖子准备翻译MSDN中关于virtual base class的文章,如果是使用.net的朋友,可以在帮助的索引中输入
    virtual base classes, overview
    阅读英文原文。
  4. 重载和重定义的区别和合作,这是以后的帖子啦;
  5. 设计模式中virtual的重要地位。在《设计模式:可复用面向对象软件的基础》一书中,介绍的类和对象组合的方法,virtual的使用在其中起到了至关重要的作用。

 

抱歉!评论已关闭.