This article is within the scope of WikiProject C/C++, a collaborative effort to improve the coverage of C/C++ on Wikipedia. If you would like to participate, please visit the project page, where you can join the discussion and see a list of open tasks.
I think this is wrong: the overriding return type must be a sub-type of the original type, not any related type, or usually subtype. Always a subtype. That's why it is called covariant. Or am I mistaken? Jirka6 (talk) 13:31, 28 November 2007 (UTC)
The facts have changed since the introduction of generics in C#.