QCM : Programmation orientée objet en C++ — 11 questions

Questions et réponses du QCM

1. Quelle caractéristique décrit la validité d’un logiciel ?

Son aptitude à fonctionner malgré des conditions anormales
Sa capacité à effectuer les tâches prévues lors de sa conception
Sa capacité à intégrer rapidement de nouvelles spécifications
Son organisation en entités indépendantes au sein d’une architecture

Sa capacité à effectuer les tâches prévues lors de sa conception

Explication

La validité signifie que le logiciel réalise exactement les tâches pour lesquelles il a été conçu. L’intégration de nouvelles spécifications relève de l’extensibilité, tandis que le fonctionnement en conditions anormales concerne la robustesse.

2. Quelle organisation logicielle correspond à la modularité ?

Un logiciel capable d’ajouter facilement des spécifications nouvelles
Un programme évalué selon sa conformité aux tâches prévues
Une architecture composée de modules indépendants qui s’intègrent entre eux
Un système conçu pour fonctionner malgré des situations anormales

Une architecture composée de modules indépendants qui s’intègrent entre eux

Explication

La modularité organise le logiciel autour de modules indépendants intégrés dans une architecture. La facilité d’ajout de spécifications décrit l’extensibilité, et non la modularité.

3. Quelle distinction oppose correctement la programmation procédurale et la programmation orientée objet ?

La programmation procédurale organise des objets par messages, tandis que la POO découpe le programme en traitements fonctionnels
La programmation procédurale protège les données par encapsulation, tandis que la POO les partage entre plusieurs fonctions
La programmation procédurale associe les données aux méthodes, tandis que la POO sépare les fonctions et les données
La programmation procédurale s’appuie sur des fonctions, tandis que la POO organise des objets qui collaborent par messages

La programmation procédurale s’appuie sur des fonctions, tandis que la POO organise des objets qui collaborent par messages

Explication

L’approche procédurale découpe le programme en fonctions, alors que la POO le considère comme un ensemble d’objets collaborant par messages. La confusion fréquente consiste à attribuer à la programmation procédurale l’association des données et des méthodes, qui caractérise plutôt la POO.

4. Pourquoi le partage de données entre plusieurs fonctions peut-il poser problème dans une approche procédurale ?

Des fonctions peuvent ajouter des spécifications nouvelles sans modifier les données existantes
Des modules indépendants peuvent être intégrés dans une architecture sans respecter leurs interfaces
Des objets peuvent envoyer des messages contradictoires à des méthodes qui protègent leurs propres données
Des fonctions peuvent écrire sur les mêmes données au même moment, notamment dans un fichier partagé

Des fonctions peuvent écrire sur les mêmes données au même moment, notamment dans un fichier partagé

Explication

Dans l’approche procédurale, plusieurs fonctions peuvent agir sur les mêmes données, ce qui crée un risque d’écritures simultanées et de partage difficile à contrôler. L’association des données aux méthodes en POO vise précisément à limiter ce type de risque.

5. Qu'est-ce que la qualité de la conception objet en termes de modularité, validité, extensibilité et réutilisabilité d'un logiciel?

La capacité d'un logiciel à effectuer précisément ses tâches, à s'étendre facilement, à être organisé en modules indépendants, et à pouvoir être réutilisé en partie ou en totalité.
La simplicité de la structure du code, la réduction du nombre de modules, la minimisation des coûts de maintenance, et la conformité aux normes.
La rapidité d'exécution d'un logiciel, sa facilité d'utilisation, sa compatibilité avec différents systèmes, et sa capacité à évoluer dans le temps.
La capacité d'un logiciel à fonctionner sur plusieurs plateformes, à être facilement modifiable, à respecter les délais, et à réduire les coûts de développement.

La capacité d'un logiciel à effectuer précisément ses tâches, à s'étendre facilement, à être organisé en modules indépendants, et à pouvoir être réutilisé en partie ou en totalité.

Explication

La qualité de la conception objet se mesure notamment par la validité, l'extensibilité, la modularité et la réutilisabilité du logiciel. Ces aspects garantissent que le logiciel effectue ses tâches correctement, peut évoluer, est organisé en modules indépendants, et peut être réutilisé.

6. Selon le cours, quel est le principal avantage de la modularité dans la conception d’un logiciel orienté objet?

Augmenter la complexité pour améliorer la sécurité
Faciliter la maintenance et la compréhension du code
Diminuer le nombre de modules pour simplifier l’architecture
Réduire la taille du logiciel en supprimant des fonctionnalités

Faciliter la maintenance et la compréhension du code

Explication

La modularité facilite la maintenance et la compréhension du logiciel en organisant le code en entités indépendantes. La réduction de la taille ou la simplification excessive ne sont pas des objectifs principaux de la modularité.

7. Quel est le rôle principal de la programmation orientée objet par rapport à la programmation procédurale?

Elle organise le logiciel autour d’objets qui collaborent par messages.
Elle privilégie la manipulation de données globales dans tout le programme.
Elle utilise uniquement des fonctions pour structurer le code.
Elle divise le programme en fonctions indépendantes sans relation.

Elle organise le logiciel autour d’objets qui collaborent par messages.

Explication

La POO organise le logiciel en objets qui communiquent via des messages, contrairement à la programmation procédurale qui se concentre sur des fonctions séparées. La programmation procédurale ne favorise pas la collaboration par messages entre entités.

8. Quand la classe en C++ est-elle déclarée avec le mot-clé 'class' et comment se termine-t-elle ?

Une classe en C++ est déclarée avec le mot-clé 'class' et se termine par une parenthèse fermante.
Lorsqu'on déclare une classe, elle utilise le mot-clé 'struct' et se termine par une accolade fermante.
Lorsqu'on définit une nouvelle classe, elle est déclarée avec le mot-clé 'class' et se termine par un point-virgule.
La déclaration d'une classe commence par 'class' et se termine par un point-virgule.

Lorsqu'on définit une nouvelle classe, elle est déclarée avec le mot-clé 'class' et se termine par un point-virgule.

Explication

En C++, une classe se déclare avec le mot-clé 'class', suivie de ses membres entre accolades, et la déclaration se termine obligatoirement par un point-virgule. La réponse correcte reflète cette syntaxe, contrairement aux autres options qui contiennent des erreurs de syntaxe ou de terminologie.

9. En quoi l'encapsulation diffère-t-elle de la visibilité en programmation orientée objet ?

L'encapsulation définit la manière dont les objets communiquent entre eux, alors que la visibilité concerne uniquement la documentation.
L'encapsulation concerne la séparation entre l'interface et l'implémentation d'un objet, tandis que la visibilité détermine l'accès aux membres d'une classe.
L'encapsulation est une technique pour cacher les données, alors que la visibilité concerne la portée des variables locales.
L'encapsulation concerne la gestion de la mémoire, tandis que la visibilité concerne la sécurité du code.

L'encapsulation concerne la séparation entre l'interface et l'implémentation d'un objet, tandis que la visibilité détermine l'accès aux membres d'une classe.

Explication

L'encapsulation sépare l'interface d'un objet de son implémentation pour protéger ses données, alors que la visibilité (public, protected, private) contrôle l'accès à ces membres. La différence réside donc dans leur objectif : abstraction versus contrôle d'accès.

10. Qui est crédité d'avoir formulé la définition d'un constructeur en programmation orientée objet ?

Les créateurs de Python
Les développeurs de Java
Les concepteurs du langage C++
Les inventeurs de Smalltalk

Les concepteurs du langage C++

Explication

Le concept de constructeur a été formulé par les concepteurs du langage C++, qui ont défini cette fonction spéciale pour initialiser les objets lors de leur création. Les autres langages ont adopté des concepts similaires, mais la définition originelle revient à C++.

11. Quels sont les principaux effets de l'utilisation des patrons génériques en C++ sur la réutilisabilité du code ?

Ils limitent la réutilisation du code en imposant des types spécifiques, ce qui réduit la flexibilité.
Ils empêchent la compilation de classes et fonctions avec différents types, ce qui limite la modularité.
Ils permettent de créer des classes et fonctions adaptables à plusieurs types de données, augmentant ainsi la réutilisation.
Ils obligent à écrire plusieurs versions de la même classe ou fonction pour chaque type, ce qui complexifie le code.

Ils permettent de créer des classes et fonctions adaptables à plusieurs types de données, augmentant ainsi la réutilisation.

Explication

Les patrons génériques en C++ permettent de paramétrer des classes et fonctions pour différents types, ce qui favorise leur réutilisation. Contrairement à l'option deux, ils ne limitent pas la réutilisation, mais la facilitent.

Révisez avec les flashcards

Mémorisez les réponses avec 11 flashcards sur Programmation orientée objet en C++.

Quel pourcentage du coût total d'un logiciel représente la maintenance ?

La maintenance représente environ 70 % du coût total.

Qu'est-ce que la validité d'un logiciel ?

C'est le fait qu'un logiciel effectue exactement les tâches pour lesquelles il a été conçu.

Quelle différence principale entre programmation procédurale et orientée objet ?

La procédurale découpe en fonctions, la POO en objets collaborant par messages.

Voir les flashcards →

Approfondir avec la fiche

Consultez la fiche de révision complète sur Programmation orientée objet en C++.

Voir la fiche →

Cours similaires

Crée tes propres QCM

Importe ton cours et l'IA génère des QCM avec corrections en 30 secondes.

Générateur de QCM