Vous êtes sur la page 1sur 2

Université Ibn Zohr

Faculté des Sciences Agadir


Filière Sciences Mathématique (SM, SMI)

Filière : Master Réseaux & Système


Module : programmation avancée C++
Durée : 1h 30mn
Responsable : Karim AFDEL

Série 5 : Template et STL

Exercice 1
Soit la classe générique complex

template <class T>


class complex
{protected: T m_re;
T m_im;
public:
// Constructor / destructor
complex(void);
complex(T re, T im);
// complex(const complex<T> & cmp);
~complex(void){};
// Accessors / mutators
T re(void);
T im(void);
// Operator overloading
complex<T> operator + ( complex<T> & cmp) ;
complex<T> & operator = ( complex<T> & cmp);
complex<T> operator - (complex<T> & cmp) ;
complex<T> operator * (complex<T> & cmp) ;
complex<T> operator / ( complex<T> & cmp) ; };

1- Définissez les méthodes de la classe générique complexe et ses constructeurs ;


2- Ecrire le programme principal en utilisant les objet suivant
complex<double> Z1(23.7, 45.2), Z2(65.3, -27.8);
complex<double> Z3, Z4, Z5,;
calculez Z3=Z1 + Z2 ; Z4=Z1*Z2 et Z5=Z2-Z1

Exercice 2

Soit la classe employée suivante :


#ifndef _objet_stl_H
#define _objet_stl_H
#include <list>
#include <vector>
#include <iostream>
#include <string.h>
using namespace std;
Université Ibn Zohr
Faculté des Sciences Agadir
Filière Sciences Mathématique (SM, SMI)

class Employe{
protected:
char *nom;
char *prenom;
long telephone;
public: Employe(char *n, char *p, long tel)
{ nom=new char[strlen(n)+1];strcpy(nom,n);
prenom=new char[strlen(p)+1];strcpy(prenom,p);
telephone=tel;
}
Employe()
{ nom=NULL;
prenom=NULL;
telephone=212;
}
char *getNom(){return nom;}
char *getPrenom(){return prenom;}
double getTel(){return telephone;}

~Employe() { cout<<"destructeur"<<endl; }
};
#endif

Ecrire un programme Créant une liste d’objet employé pour cela il faut commencer par
déclarer une liste d’employé en utilisant la déclaration suivante :

typedef list<Employe> list_employe;


list_employe list_empl ;
Création d’un itérateur pour parcourir la liste list_empl
list_employe::iterator it_emp;
Créez 4 objets de type Employe par exemple
Employe E1("Taha","Karim",120);
Intégrez cet objet dans la liste list_empl en utilisant la méthode : push_back(…);
Utilisez l’itérateur pour parcourir la liste et affichez les attributs de divers objets