QCM sur la programmation orientée objet en C++ – Partie 3

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. Quelle est la sortie du code C++ suivant?
#include <iostream>
using namespace std;
 
class A
{
	static int val;
 
   public:
	void write(int i){
		val = i;
	}
	void read(){
		cout << val;
	}
};
 
int main(int argc, char const *argv[])
{
	A a = A();
	a.write(10);
	a.read();
	return 0;
}

A 10

B Segmentation fault

C Erreur de compilation

D Aucune de ces réponses n’est vraie.

C
Chaque membre statique d’une classe est initialisé avant son utilisation. Comme ‘val’ est un membre statique de la classe A et n’est pas initialisé, le programme affichera une erreur.
 

 

2. Quelle est la sortie du code C++ suivant?
#include <iostream>
using namespace std;
 
class A
{
	static int val;
 
   public:
	void write(int i){
		val = i;
	}
	void read(){
		cout << val;
	}
};

int A::val = 55;

int main(int argc, char const *argv[])
{
	A a = A();
	a.write(10);
	a.read();
	return 0;
}

A 55

B 10

C Erreur de compilation

D Aucune de ces réponses n’est vraie.

B
Comme ‘val’ est un membre statique de la classe A, il s’agit donc d’un type de variable globale de la classe A, c’est-à-dire que toute modification apportée par un objet est répercutée sur tous les autres objets.
 

 

3. Quelle est la sortie du code C++ suivant?
#include <iostream>
using namespace std;
 
class A
{
   int val = 55;
 
   public:
	void write(int i){
		val = i;
	}
	static void read(){
		cout << val;
	}
};

int main(int argc, char const *argv[])
{
	A a = A();
	a.write(10);
	a.read();
	return 0;
}

A 55

B 10

C Erreur de compilation

D Aucune de ces réponses n’est vraie.

C
Comme la fonction read() est une fonction statique et que les membres statiques ne peuvent accéder qu’aux membres statiques, le programme affichera une erreur.
 

 

 
 

4. Lors de l’allocation mémoire dynamique en C++, l’opérateur new renvoie la valeur _________ si l’allocation de mémoire échoue.

A False

B NULL

C Zéro

D Aucune de ces réponses n’est vraie.

B
Si l’allocation de mémoire échoue, l’opérateur « new » renvoie la valeur NULL

MaClasse* obj = new MaClasse();
if (obj == NULL) {   //nécessaire uniquement si votre compilateur est ancien
  std::cerr << "Impossible d'allouer de la mémoire" << std::endl;
  abort();
}

 

5. Nous pouvons créer des objets du type de la classe abstraite?

A Vrai

B Faux

B
Vous ne pouvez pas créer une instance d’une classe abstraite car son implémentation n’est pas complète.

 

6. La valeur par défaut d’une variable statique est_____.

A 1

B 0

C Dépend du compilateur

D Aucune de ces réponses n’est vraie.

B
En programmation C++, les variables statiques ont toujours la valeur par défaut Zéro.

 

7. Quelle est la sortie du code C++ suivant?
#include<iostream> 
using namespace std; 
  
int a = 55; 
void fun() 
{ 
    int a = 20; 
    { 
        int a = 10; 
        cout << ::a << endl;  
    } 
} 
  
int main() 
{ 
    fun(); 
    return 0; 
}

A 10

B 20

C 55

D Aucune de ces réponses n’est vraie.

C

 
Si l’opérateur de résolution de portée :: est placé avant un nom de variable, la variable globale est référencée. Donc, si nous supprimons int a = 55;, la compilation du programme échouera.
 
 

8. Quelles fonctions de classe s’appellent des fonctions inline?

A Toutes les fonctions déclarées à l’intérieur d’une classe

B Toutes les fonctions définies en dehors de la classe

C Toutes les fonctions définies à l’intérieur ou avec le mot clé inline

D Toutes les fonctions accédant aux membres statiques de la classe

C
Toutes les fonctions définies dans la classe ou les fonctions ayant le mot-clé inline devant elles sont des fonctions inline d’une classe, à condition qu’elles soient simples, sinon le compilateur ignore le mot-clé inline.

 

9. L’objet est créé dans _________

A Une classe

B Constructeur

C Destructeur

D Attributs

A
Lorsque vous créez un objet, vous créez une « instance » d’une classe.

 

10. Quelle est la sortie du code C++ suivant?
#include<iostream>

using namespace std;

class Point {
private:
    int x;
    int y;
public:
    Point(int a, int b);
};

Point::Point(int a = 0, int b = 0)  {
    x = a;
    y = b;
    cout << "Constructeur appelé";
}
  
int main()
{
   Point p1, *p2;
   return 0;
}

A Affiche « Constructeur appelé » une seule fois.

B Affiche « Constructeur appelé » deux fois.

C N’affiche rien.

D Erreur de compilation.

A
Si nous examinons la déclaration Point p1, *p2;, nous pouvons voir que seul un objet est construit ici. p2 est juste une variable de pointeur, pas un objet.
 

 

 
 
Partagez cet article

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *