En fait, tu connais l'Invariance, la Contravariance n'est implémenté ni dans C++ ni dans Java car cela n'est pas sémantiquement utile.
Contravariance signifie que les paramètres se spécialisent dans le sens contraire du receveur. C'est vachement bien au niveau de la théorie des types mais ca n'a aucun interet :p
A propos, pour finir l'explication, la covariance du type de retour est type safe et est d'ailleurs dans la norme de C++ (mais pas en Java, pourtant en Java ca coute rien a implémenter à cause de l'héritage simple. En C++ c'est beaucoup plus difficile mais tu peux essayer avec g++ par exemple de redéfinir le type de retour d'une méthode pour avoir un résultat amusant (plus un message d'excuse qu'un message d'erreur))
Sinon, dans la pratique pure. ben, des fois c'est plutot pratique de pouvoir spécialiser les paramètres et surtout les attributs. Ca évite bien des casts inutiles et des déclarations de variables intermédiaires temporaires.
La surcharge statique est d'après certains le coté obscur de la force, plus facile, plus pratique, etc... mais c'est sur que cela rend plus difficile l'implementation de la covariance.
[^] # Re: Nosicalight version 0.2
Posté par MrTout . En réponse au journal Nosicalight version 0.2. Évalué à 2.
Contravariance signifie que les paramètres se spécialisent dans le sens contraire du receveur. C'est vachement bien au niveau de la théorie des types mais ca n'a aucun interet :p
A propos, pour finir l'explication, la covariance du type de retour est type safe et est d'ailleurs dans la norme de C++ (mais pas en Java, pourtant en Java ca coute rien a implémenter à cause de l'héritage simple. En C++ c'est beaucoup plus difficile mais tu peux essayer avec g++ par exemple de redéfinir le type de retour d'une méthode pour avoir un résultat amusant (plus un message d'excuse qu'un message d'erreur))
Sinon, dans la pratique pure. ben, des fois c'est plutot pratique de pouvoir spécialiser les paramètres et surtout les attributs. Ca évite bien des casts inutiles et des déclarations de variables intermédiaires temporaires.
La surcharge statique est d'après certains le coté obscur de la force, plus facile, plus pratique, etc... mais c'est sur que cela rend plus difficile l'implementation de la covariance.