热情软件屋

 

virtual有必要吗


编号:QA003128
建立日期: 2000年7月5日 最后修改日期:2000年7月16日
所属类别:

William H:
    操作系统: windows
    编程工具: VC6.0
    问题: 请问,
    我用VC的AppWizard生成了一个对话框框架,为什麽CDemoApp(从CWinApp中继承)的InitInstance()生成的是虚函数?类似情况有不少。将InitInstance()中的virtual去掉也可运行。virtual有必要吗?
    水平: 刚入门

回答:

    virtual表示子类可以重载该子程序。如果你去掉它,并不影响运行,但子类就无法重载它了。
    SAGA的意见:
    virtual表示虚函数。他在表示一个类的多态性中起着重要的作用。
    建议你看一看有关oop的书。
    You can overlay any functions(their paremeters are different as lease) any times in one class without 'virtual' as you wish 。In another case, if you wrote a same function(name ,parameter,type & not virtual)in son,you must dedicate the class(parent or son)in which the function was when you use it. You can use parent version in son class but can't use son's in parent.
    T1000的意见:
    如果没有virtual关键字,编译器在生成代码的时候就不会生成VPTB,那么你的基类就不能得到多态性。

此问题由李海回答。

 
把这个问题推荐给朋友
   
   
您的意见类别
您的名字
您的电子邮件
您的建议(请尽可能详细)
 
 

版权所有 1997-2008 热情软件屋
如果您有任何建议和意见, 请给我发个电子邮件 askpro@china-askpro.com
Web Designed by ZebraStudio