Vous êtes sur la page 1sur 4

Correction

UMMTO/FGEI/Département d'Electronique Master 1 : 2016/2017

POO en C++ Nom et prénom :


Partiel du 09/02/2017 ................................................

Durée : 1 h 30 minutes.
Aucun document n'est autorisé. L'usage du téléphone ou smartphone est interdit.
Les questions faisant apparaître le symbole ♣ peuvent présenter zéro, une ou plusieurs bonnes
réponses. Les autres ont une bonne réponse unique.

Question 1 ♣ Comment appelle-t-on une variable possédant des attributs et des méthodes?

une instance une classe Aucune de ces correcte.


réponses n'est
une structure un objet
Question 2 Quelles seront les valeurs de n et p après exécution de la ligne d'instruction suivante
(initialement n=1 et p=2;) : n=(p++>2*++n)?3*p:4*n;

n= 8 et p= 3 n= 3 et p= 8
n= 7 et p= 3 autre n= .... et p= ....
Question 3 Le mécanisme qui permet de rendre les membres d'un objet plus ou moins visibles
pour les autres objets est :

l'héritage l'encapsulation le polymorphisme


Question 4 ♣ Dans une classe, un attribut déclaré privé (private) est accessible:

par les méthodes de la classe par les fonctions amies (friend)


par toutes les classes par les méthodes des classes dérivées
par toutes les fonctions Aucune de ces réponses n'est correcte.

Question 5 Quelles seront les valeurs de n et p après exécution de la ligne d'instruction suivante
(initialement n=p=0;): do { n+=2*p; ++p;} while(n++<=4);

n=2 et p=5 autre : n=...... et p= .......


n=9 et p=3 n=5 et p=2
Question 6 ♣ Dans une classe, un attribut déclaré protected est accessible:

par les méthodes de la classe par toutes les fonctions


par les méthodes des classes dérivées
par toutes les classes Aucune de ces réponses n'est correcte.

Question 7 Quelles seront les valeurs de n et p après exécution de la ligne d'instruction suivante
(initialement n=p=0;): while(++n<=4) n+=2*p; ++p;

n=2 et p=5 autre : n= .... et p= .....


n=5 et p=2 n=5 et p=1
Question 8 Quelles seront les valeurs de n et p après exécution de la ligne d'instruction suivante
(initialement n=3 et p=2;) : q = n++<p || ++p == 3 && p<n;

n = 4 p = 3 q = 0 autre n = ... p = ... et q = ...


n = 3 p = 2 q = 1 n = 4 p = 3 q = 1
Correction

Question 9 ♣ Quels sont les élements de la classe mère qui ne sont pas hérités par la classe
lle?

le destructeur Les attributs déclarés privés


Les contructeurs
les méthodes déclarées public Aucune de ces réponses n'est correcte.

Question 10 Quelles seront les valeurs de n et p après exécution de la ligne d'instruction


suivante (initialement n=p=0;): for(i=0, n=1; p<3; ++p, i++) n+=p;

autre : n= .... et p= ..... n=5 et p=2


n=5 et p=3 n=4 et p=3
Question 11 Pour déclarer une variable entière de valeur 5, il faut écrire :

oat a(5); int *a(5); int v=5; bool a=5;

Soit le programme suivant : CORRIGER LES ERREURS EVENTUELLES QUI


SE SONT INSEREES
LES QUESTIONS QUI SUIVENT SE RAPPORTENT A CE PROGRAMME
c l a s s ObjetGraphique {
int x , y , c ; // p o s i t i o n e t c o u l e u r de l ' o b j e t
s t a t i c int nobjet
public :
ObjetGraphique ( ) {x=0; y=0; c =0; n o b j e t ++;}
ObjetGraphique ( i n t a , i n t b , i n t e ) {x=a ; y=b , c=e ; n o b j e t ++;}
~ObjetGraphique ( ) { nobjet − − ;}
s t a t i c i n t get_nobjet ( ) { r e t u r n n o b j e t ; }
v i r t u a l void draw ( ) c o n s t =0;
void a f f i c h e ( ) ;
}
c l a s s Point : p u b l i c ObjetGraphique {
public :
Point ( ) {}
Point ( i n t a , i n t b , i n t e ) : ObjetGraphique ( a , b , e ) {}
void draw ( ) { }
}
void ObjetGraphique : : a f f i c h e ( ) {
cout << " Coordonnees de l ' o b j e t : ( x , y)=(" << x << " , << y <<")\n " ;
}
ObjetGraphique : : n o b j e t =0;
main ( ) { Point x , y ( 1 0 , 2 0 , 1 ) ;
Point z ( y ) ;
z . affiche ();
Point ∗ v ;
s t d : : cout <<"Nombre d ' o b j e t s c r e e s :"<<get_nobjet ( ) ;
v−>a f f i c h e ( ) ;
retun 0 ;
}
Question 12 A la création de l'objet z, le constructeur appelé est :
autre : ........................... Point()
aucun Point(int, int, int)
Question 13 La méthode get_nobjet peut accéder aux attributs :
aucun x,y et c
nobjet seulement tous
Correction

Question 14 ♣ La classe Point :


est une spécialisation de la classe Ob- dérive de la classe ObjetGraphique
jetGraphique
est une classe lle Aucune de ces réponses n'est cor-
est une classe mère recte.

Question 15 On ne peut pas créer d'objet à partir d'une classe abstraite.


faux vraie
Question 16 ♣ L'attribut nobjet du programme précédent :
est un attribut de classe terne à la classe ObjetGraphique
est un attribut d'instance Aucune de ces réponses n'est cor-
correspond à une variable globale in- recte.

Question 17 A la création d'une instance Point, les constructeurs sont appelés dans
un ordre bien précis :
autre : ........................... classe mère, puis classe lle.
classe lle seulement classe lle, puis classe mère.
Question 18 Le nombre d'objets Point créés dans le programme principal est de :
3 2 4 5
Question 19 il est possible de connaître le véritable type d'un objet désigné par un
pointeur ou une référence
en utilisant la classe type_info en utilisant la méthode name() de la
classe type_info
en utilisant l'opérateur typeid autre : ...........................
Question 20 Lesquelles des méthodes des classes ObjetGraphique et Point sont
polymorphiques:
ache() toutes
aucune draw()
Question 21 Laquelle des classes ObjetGraphique et Point est abstraite :
Point aucune
toutes les deux ObjetGraphique
Question 22 Qu'achera ce programme après son exécution :
Coordonnées de l'objet : (x,y) =(0,0)
Nombre d'objets graphiques créés : 0
Coordonnées de l'objet : (x,y) =(10,20)
Nombre d'objets graphiques créés : 3
Coordonnées de l'objet : (x,y) =(10,0)
Nombre d'objets graphiques créés : 4
Question 23 Les attributs x, y, c et nobjet du programme précédent sont déclarés
:
public private protected
Correction

Question 24 ♣ Dans les chiers entêtes, les lignes de code suivantes :


#i f n d e f OBJECT_H_INCLUDED
#d e f i n e OBJECT_H_INCLUDED
#e n d i f

sont des instructions du langage sont des directives qui permettent la


C++ compilation conditionnelle
empêche l'inclusion multiple des
chiers entête Aucune de ces réponses n'est cor-
sont des directives du preprocesseur recte.

Question 25 Une classe abstraite est une classe qui possède :


au moins une fonction membre virtuelle pure
virtuelle des fonctions membres statiques
au moins une fonction membre Que des fonctions membres virtuelles
Ajouter à la classe ObjetGraphique une méthode membre qui nous retournera la
distance entre deux objets Graphiques :
Indications : fonction racine carrée sqrt(n) - fonction valeur absolue abs(n)

Vous aimerez peut-être aussi