covariant return type
问题 $10.3/5 "The return type of an overriding function shall be either identical to the return type of the overridden function or covariant with the classes of the functions. If a function D::f overrides a function B::f, the return types of the functions are covariant if they satisfy the following criteria: — both are pointers to classes or references to classes98) — the class in the return type of B::f is the same class as the class in the return type of D::f, or is an unambiguous and accessible