QCM sur la programmation orientée objet en C++ – Partie 4
QCM sur 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. Choisissez une autre définition pour les objets.
A Membre de la classe
B Associé de la classe
C Attribut de la classe
D Instance de la classe
2. Combien d’objets peuvent être présents dans une même classe ?
A 1
B 2
C 3
D Autant que possible
3. Quelle est la sortie du programme C++ suivant?
#include<iostream> using namespace std; class Point { private: int x; int y; public: Point(int a = 0, int b = 0); // Constructeur Normal Point(const Point &p); // Constructeur de Copier }; Point::Point(int a, int b) { x = a; y = b; cout << "Constructeur normal appelé\n"; } Point::Point(const Point &p) { x = p.x; y = p.y; cout << "Constructeur de copier appelé\n"; } int main() { Point *p1, *p2; p1 = new Point(5, 10); p2 = new Point(*p1); Point p3 = *p1; Point p4; p4 = p3; return 0; }
A
Constructeur normal est appelé Constructeur de copier est appelé Constructeur de copier est appelé Constructeur normal est appelé
B
Constructeur normal est appelé Constructeur normal est appelé Constructeur normal est appelé Constructeur de copier est appelé Constructeur de copier est appelé Constructeur normal est appelé
C
Constructeur de copier est appelé Constructeur normal est appelé Constructeur de copier est appelé Constructeur de copier est appelé Constructeur normal est appelé
D Aucune de ces réponses n’est vraie.
4. La réutilisation du code peut être atteint dans un programmes C++ à l’aide de ______.
A Polymorphisme
B Encapsulation
C Héritage
D Les deux A et C sont vrais.
5. Quel caractère est utilisé pour marquer la fin d’une classe?
A :
B ;
C #
D ,
6. Quelle est la sortie du programme C++ suivant?
#include<iostream> using namespace std; class MaClasse { int val; public: MaClasse(int v); }; MaClasse::MaClasse(int v) { val = v; cout << "Constructeur appelé\n"; } int main() { MaClasse tab[100]; return 0; }
A Affiche « Constructeur appelé »
B N’affiche rien
C Erreur de compilation
D Aucune de ces réponses n’est vraie.
7. Lesquels des instructions suivants est/sont valables pour allouer de la mémoire dynamiquement pour un entier en C++?
A int *ptr = new int(100);
B int *ptr; ptr=new int; *ptr=100;
C int *ptr=NULL; ptr=new int; *ptr=100;
D Tout les réponses sont vrais
8. Les variables statiques dans une classe sont initialisées _____.
A lorsque chaque objet de la classe est créé.
B lorsque le dernier objet de la classe est créé.
C lorsque le premier objet de la classe est créé.
D lors de la compilation.
E Pas besoin d’initialiser une variable statique.
9. Pour effectuer des opérations d’E/S sur fichier, vous devez utiliser le fichier d’en-tête __________.
A <ifstream>
B <ofstream>
C <fstream>
D Aucune de ces réponses n’est vraie.
10. Quelle est la sortie du programme C++ suivant?
#include<iostream> using namespace std; int &f() { static int x = 10; return x; } int main() { int &y = f(); y = y +5; cout << f(); return 0; }
A 10
B 5
C 15
D Erreur de compilation
Question 8 : la réponse est fausse.
En effet, les membres static d’une classe sont initialisés à 0, même si aucun objet, aucune instanciation de la classe n’est créée. Ils sont initialisés à l’exécution du programme. Ainsi le code :
Affichera "0" car A::val a été initialisée à 0 par la déclaration "int A::val;", alors qu'aucun objet de la classe A n'a été créé. Il n'y a aucune instance de A dans ce programme.
Merci pour cette remarque 🙂