QCM sur la programmation orientée objet en C++ avec des réponses pour la préparation des concours, des tests en ligne, examens et aux certifications. Ces questions et réponses sur C++ comprennent divers sujets. Et sont tirés d’un vrai concours écrit. Cette méthode d’apprentissage systématique préparera facilement toute personne pour réussir son test sur C++.
1. Un objet const d’une classe peut appeler une fonction membre non-const de la classe.
A Vrai
B Faux
B
En C++, un objet déclaré const ne peut appeler que des fonctions membres déclarées const, car celles-ci garantissent qu’elles ne modifient pas l’état de l’objet. Une fonction membre non const est susceptible de modifier les données de l’objet, il est donc interdit de l’appeler à partir d’un objet const.
2. Si un argument d’une fonction est déclaré en tant que const, alors _______.
A La fonction peut modifier l’argument.
B La fonction ne peut pas modifier l’argument.
C La fonction ne peut pas avoir un argument const.
D Aucune de ces réponses n’est vraie.
B
En C++, lorsqu’un argument de fonction est déclaré avec le mot-clé const, la fonction s’engage à ne pas modifier sa valeur. Toute tentative de modification de cet argument à l’intérieur de la fonction provoque une erreur de compilation. L’utilisation de const permet de protéger les données et d’améliorer la sécurité du code.
3. Quelle est la sortie du code suivant?
#include<iostream>
using namespace std;
int main()
{
int a = 1, b = 1, c = 1;
cout << (++a || ++b && ++c ) << endl;
cout << a << " " << b << " " << c ;
return 0;
}
A 0
2 1 1
B 1
2 1 1
C 1
2 2 2
D 1
2 2 1
B
Remarque : le compilateur lit les opérateurs OR et AND de gauche à droite.
4. Pouvons-nous écrire la clause throw dans le bloc catch?
A Oui
B Non
A
En C++, il est tout à fait possible d’utiliser l’instruction throw à l’intérieur d’un bloc catch. Cela permet de relancer la même exception (avec throw;) ou de lancer une nouvelle exception afin qu’elle soit traitée par un autre bloc catch situé à un niveau supérieur. Cette technique est couramment utilisée lorsqu’une exception ne peut pas être complètement gérée localement.
5. Quelle est la sortie du code suivant?
#include<iostream>
using namespace std;
int main()
{
int a = 1 , b = 1;
cout << ( ++a && ++b ) << endl;
cout << a << " " << b;
return 0;
}
A 1
1 1
B 0
2 2
C 1
2 2
D Erreur de compilation.
C
L’opérateur AND doit évaluer les deux parties droite et gauche.
6. Les valeurs par défaut d’une fonction sont spécifiées lorsque ____.
A la fonction est définie
B la fonction est déclarée
C Les deux A et B sont vrais.
D Aucune de ces réponses n’est vraie.
B
En C++, les arguments par défaut sont spécifiés dans la déclaration (prototype) de la fonction, généralement dans un fichier d’en-tête (.h). Ils ne doivent être définis qu’une seule fois afin d’éviter toute ambiguïté. La définition de la fonction ne répète généralement pas les valeurs par défaut.
7. Les fonctions membres d’une classe peuvent-elles être des fonctions amis d’une autre classe?
A Oui
B Non
A
En C++, une fonction membre d’une classe peut être déclarée fonction amie (friend) d’une autre classe. Cela lui permet d’accéder aux membres privés et protégés de cette autre classe, même si elle n’en est pas membre. Les fonctions amies sont souvent utilisées pour faciliter la collaboration entre deux classes tout en conservant l’encapsulation.
8. Les constructeurs peuvent-ils être surchargés?
A Oui
B Non
A
En C++, les constructeurs peuvent être surchargés, c’est-à-dire qu’une même classe peut définir plusieurs constructeurs ayant des listes de paramètres différentes. Cela permet de créer des objets de différentes manières, selon les informations disponibles au moment de leur création.
9. Lorsque vous surchargez des opérateurs unaires(!, +, &, *, ++, etc) à l’aide d’une fonction amie, cela nécessite ____ argument(s).
A Zéro
B Un
C Deux
D Trois
B
En C++, lorsqu’un opérateur unaire (!, +, -, *, &, ++, –, etc.) est surchargé à l’aide d’une fonction amie (friend), cette fonction reçoit un seul argument, qui représente l’objet sur lequel l’opérateur est appliqué. Contrairement à une fonction membre, qui utilise implicitement l’objet courant (this), une fonction amie doit recevoir explicitement cet objet en paramètre.
10. La surcharge de fonction peut également être obtenue si deux fonctions ou plus ne diffèrent que par leur type de retour.
A Vrai
B Faux
B
En C++, la surcharge de fonctions ne peut pas être réalisée uniquement en changeant le type de retour. Deux fonctions ayant le même nom et les mêmes paramètres, mais des types de retour différents, sont considérées comme identiques par le compilateur, ce qui provoque une erreur de compilation. Pour surcharger une fonction, il faut modifier le nombre, le type ou l’ordre des paramètres.