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 :
#include using namespace std; class A { public: static int val; }; int A::val; int main() { cout << A::val << '\n'; return 0; }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 🙂