CodeQL documentation

Inconsistent virtual inheritance

ID: cpp/inconsistent-virtual-inheritance
Kind: problem
Severity: error
Precision: high
   - maintainability
   - readability
   - external/jsf
Query suites:
   - cpp-security-and-quality.qls

Click to see the query in the CodeQL repository

If a base class is both virtual and non-virtual within a single hierarchy then the hierarchy is more difficult to understand and maintain. This rule identifies any base classes that are derived as both virtual and non-virtual in one hierarchy as violations.


  • AV Rule 89, Joint Strike Fighter Air Vehicle C++ Coding Standards. Lockheed Martin Corporation, 2005.
  • MSDN Library: Multiple Base Classes.