C++は昔から共変戻り値型をサポートしている。
//基底クラス
class TBase
{
public:
TBase* Foo();
};
//派生クラス
class TDerived : public TBase
{
public:
TDerived* Foo();
};
JavaではJava5(JDK1.5)からサポートされた。
DelphiとC#は対応していない。