The type of an overriding function must be the same as the type of the virtual function it overrides ,except that the return type may be relaxed. That is, if the original return type was B *, then the return type of the overriding function may be D *, provided B is a public base of D . Similarly, a return type of B & may be relaxed to D &. |