Salut à tous.
J'ai un exam de C++ cette semaine. J'ai le sujet de l'année dernière, j'aurais aimé avoir vos avis sur quelques questions.
Soit la classe C++ suivante :
1 – Cette classe vous semble-t-elle correcte syntaxiquement ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 Class Contenu { Public : int x ; int y ; Contenu() {} ;// le contenu des fonctions na pas été défini et donc ne peut être considéré comme étant une erreur de syntaxe int Execute() {} ; void Print() {} ; } ;
2 – La notion d’encapsulation au sens C++ est – elle présente dans cette classe ? Justifiez dans les 2 cas (oui ou non) votre réponse. Au cas où il n’y a pas d’encapsulation dans cette classe, proposez la mise en oeuvre de cette notion au sein de cette classe.
3 – Cette classe peut-elle être une classe de base dans le cas de l’héritage ? Justifiez votre réponse. Répondre oui ou non tout simplement ne constituera pas une réponse valide.
4 – Que signifie le polymorphisme au sens C++ ?
5 – Citez deux cas ou la notion de polymorphisme est utilisée en C++.
6 – Pour que cette classe soit une classe abstraite, que doit-elle contenir ? Cette notion a des incidences sur son utilisation. Citez-en au moins 2.
7 - Modifier cette classe pour qu’elle puisse accepter tous types de données (char, int, float, double, pointeur, …). Imaginez dans cette version de la classe, un cas d’application en définissant tous les membres. Chaque membre correspond à votre vision d’un traitement qu’il peut faire. Créez des objets sur cette classe dans tous les cas de figures (type de données proposé ci-dessus).dans une fonction main() par exemple.
Alors, concernant les réponses que j'apporterai :
1. Syntaxiquement, rien n’est mauvais dans cette classe.
2. L’encapsulation est mal fait. Les attributs ne sont pas déclarés en Private. Pour la mise en œuvre je rajoute un private où je met les attributs dedans.
3. Cette classe ne peut pas servir pour l’héritage car elle ne contient pas de d’encapsulation protected nécessaire.
4. Le polymorphisme sert a utiliser une même classe sur des contenus différents. On ne peut effectivement pas traiter des entiers comme des chaînes de caractères.
5. Si on souhaite traiter 2 types différents en appelant la même classe ? L’autre je sais pas.
6 et 7. J’en ai aucune idée …
Vous pensez quoi de mes réponses ? Est-ce que vous avez la réponse à celle manquante ?
ps : Ne me dites pas que je suis une brêle, vous ne m'apprendrez rien![]()
Partager