我有一个普通的类叫做
我的问题是,尽管这样很好用,但在运行代码分析时,我被警告不要直接调用虚函数。
我是否应该在基类之上创建另一个类层,并覆盖虚函数,只继承那个类?
直接使用虚方法的缺点是什么?
编辑:警告如下:
BaseView
,它有一个虚方法DisplayView
。此方法调用GetHeader
和GetBody
虚方法从页面获取内容。然后,我会创建一个继承自BaseView
的类,并覆盖需要以不同于基类的方式显示内容的方法。我的问题是,尽管这样很好用,但在运行代码分析时,我被警告不要直接调用虚函数。
我是否应该在基类之上创建另一个类层,并覆盖虚函数,只继承那个类?
直接使用虚方法的缺点是什么?
编辑:警告如下:
CA2214 : Microsoft.Usage:xxx包含一个调用链,结果导致调用类定义的虚方法。请查看以下调用堆栈以防止意外情况。