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,那么你的基类就不能得到多态性。
此问题由李海回答。
| |
|
|
| |
|
|