Qualcuno mi saprebbe spiegare abbastanza in dettaglio, che cosa è e come funziona il caso covariante e controvariante in C++, perchè stò studiando il C++ ma all'improvviso mi sono imbattuto in questi due termini che mi hanno completamente bloccato (li ho trovati in relazione all'argomento di subtyping legato all'ereditarietà)...
Praticamente, in sintesi mi sono trovato:
Covarianza : A <: A' implica F(A) <: F(A')
Controvarianza : A <: A' implica F(A') <: F(A)
POI...
Subtyping sul codominio (covariant)
-if B <: B' then A-->B <: A-->B'
Subtyping sul dominio(contravariant)
-if A' <: A then A-->B <: A'-->B

Le regole genereli che ho incontrato sono queste, ed in queste il simbolo <: ho capito che significa "è in relazione di sottotipo con" mentre non riesco a capire cosa significa la freccia.
Se qualcuno mi riesce a spiegare queste cose gliene sarei veramente grato, sono ormai 5 giorni che sono bloccato su queste cose.

Grazie a tutti.
bobo84 è offline Aggiungi alla reputazione di bobo84 Segnala messaggio Modifica/cancella messaggio