Conditional inheritance is an extension to multiple inheritance. Several base-sections can be specified separated by commas. Each base-section can be given a condition in the form of an expression. The base-section is passed on to the section when the condition evaluates to true. If no condition is given for a base-section the base-section is always included.
In the following example Section23 is always derived from SectionA. Additionally, depending on the value of twoPointSwitch either SectionB, SectionC, or both are used as base-sections.
twoPointSwitch = 0; Section23 : SectionA, // always used SectionB ? (twoPointSwitch > -1), SectionC ? (twoPointSwitch < 1) { // ... }
Robert Klima 2003-02-06