Covariant problem

Steven Schveighoffer schveiguy at yahoo.com
Wed Jul 23 10:37:22 PDT 2008


"Lars Ivar Igesund" wrote
> Steven Schveighoffer wrote:
>
>> "Zarathustra" wrote
>>> error:
>>> function basis.CPolygon2d.getPoints of type CPoint2d[]() overrides but 
>>> is
>>> not covariant with basis.CPolygon3d.getPoints of type CPoint3d[]()
>>>
>>> I don't know how to fix this problem. What does 'covariant' mean?
>>
>> Covariant means that the override returns something that can be 
>> implicitly
>> casted to the base version.
>>
>> So the error looks like the base class function getPoints returns type
>> CPoint3d[], but the derived class is returning CPoint2d[].  In order for
>> this to work, CPoint2d[] must be implicitly castable to CPoint3d[], which
>> probably isn't true.
>>
>> In order to diagnose the problem exactly, we would have to see code.  At
>> least the class hierarchy.
>>
>> -Steve
>
> Arrays are not implicitly castable (not even explicitly afaik) to another
> type, no matter how they are related.



More information about the Digitalmars-d-learn mailing list