08 09 Exam
08 09 Exam
08 09 Exam
Examen – 2008/2009
SMI – C++
Exercice 1 :
Que produit le programme suivant :
#include <iostream>
using namespace std;
class T{
int i;
public:
T( int n = 0){
cout << "+++ Constructeur \n";
i = n;
}
T( T & v){
cout << "*** Constructeur par recopie\n";
i = v.i;
}
~T(){
cout << "--- Destructeur\n";
}
};
void f1(T t) {}
void f2(T & t) {}
int main()
{
cout << "DEBUT\n";
T u;
T v = u;
cout << "appel f1 : \n" ;f1(u);
cout << "appel f2 : \n" ;f2(u);
T * pt;
pt = new T(2);
delete pt;
cout << "FIN\n";
return 0;
}
Exercice 2 :
Complétez la classe suivante :
class T{
int x;
public:
...
};
...
1
pour que le programme suivant soit correct :
int main(){
T a = 5;
int i,j;
i = a;
j = 2 + a;
cout << a << endl;
return 0;
}
Justifier tout membre (donnée ou fonction) ajouté.
Exercice 3 :
1. On considère la classe Personne qui permet de manipuler l’identité d’une personne
dont les propriétés sont : nom, prenom et age. Ecrire les fonctions suivantes :
i. Un constructeur pour initialiser les propriétés d’une personne.
ii. Une surcharge de l’opérateur << qui permet d’afficher les propriétés d’une
personne.
iii. Un destructeur.
iv. Un constructeur par recopie.