Bien comprendre la virtualité et la généricité ???
Bonjour,
Je suis étudiant en license informatique, et je me suis confronter à des questions pour lesquelles j'ai pas pu trouver de réponses.
Les questions sont les suivantes:
VIRTUALITE :
1)- le polymorphisme implique-t-il nécessairement la virtualité? Justifier
2)- A quoi sert un destructeur virtuel?
3)- Pourquoi ne peut on avoir de constructeur virtuel?
GENERICITE :
1)- Héritage et généricité sont ils compatibles ? Justifier.
2)- Donner un exemple simple dans lequel un arbre d'héritage peut être remplacé par un ensemble de classe génériques. Citer deux défauts pour la seconde approche?
3)- Définir une fonction de produit scalaire générique entre deux vecteurs. La généricité portera sur deux points : le type des éléments et la taille des deux vecteurs. Quel est l'intérêt de la généricité sur la taille?
Merci d'avance de votre aide. :wink:
Re: Bien comprendre la virtualité et la généricité ???
Citation:
Envoyé par realmadrid
Bonjour,
VIRTUALITE :
1)- le polymorphisme implique-t-il nécessairement la virtualité? Justifier
2)- A quoi sert un destructeur virtuel?
3)- Pourquoi ne peut on avoir de constructeur virtuel?
:
1)
si les fonctions ne sont pas virtual il n y a pas de polymorpysme!
2)
l adresse d un objet d une classe derive, garde dans un pointeur de classe base, se suffirait d appeler le destructeurs base pour detruire la partie base de l objet!!
c est pour quoi on utilise le destructeur virtual
3)
au moment ou l objet est cree (et c est le seul moyen d utiliser un constructeur) on sait tjs de quel type est l objet!!
Re: Bien comprendre la virtualité et la généricité ???
Citation:
Envoyé par d-a-v-e
1)
si les fonctions ne sont pas virtual il n y a pas de polymorpysme!
T'es sûr ? :D
Code:
1 2 3 4 5 6 7 8 9 10
| class A {};
void Test( A & )
{
}
class B : public A {};
B b;
Test( b ); |
Luc pourrait aussi parler du polymorphisme paramétrique dans les templates.