Désolé pour le post précédent (a pas aimé opéra je crois)
petites erreurs de syntaxe.
#ifndef
__COMPLEXE__
#define
__COMPLEXE__
#include
<iostream>
using
namespace std;
template
<class T>
class
complexe {
public :
//definition des constructeur
complexe();
complexe(T r,T i);
complexe(complexe<T> &a);
//methode d'acces
T getre();
T getim();
void setre(T r);
void setim(T i);
//surcharge des operator
complexe<T> operator+(complexe<T> &z);
complexe<T> operator=(complexe<T> &z);
complexe<T> operator*(complexe<T> &z);
friend ostream& operator<<(ostream &out,const complexe<T> &);
friend istream& operator>>(istream &in,complexe<T> &);
protected
:
T re;
T im;
};
#endif
#include
"complexe.h"
template
<class T>
complexe<T>::complexe(){}
template
<class T>
complexe<T>::complexe(T r,T i){
re=r;
im=i;
}
template
<class T>
complexe<T>::complexe(complexe<T> &p){
re=p.re;
im=p.im;
}
template
<class T>
T complexe<T>::getim(){
return im;
}
template
<class T>
T complexe<T>::getre(){
return re;
}
template
<class T>
void
complexe<T>::setim(T i){
im=i;
}
template
<class T>
void
complexe<T>::setre(T r){
re=r;
}
template
<class T>
complexe<T> complexe<T>::operator+(complexe<T> &z){
complexe<T> p;
p.im=p.im+z.im;
p.re=p.re+z.re;
return
this;
}
template
<class T>
complexe<T> complexe<T>::operator=(complexe<T> &z){
re=z.re;
im=z.im;
return
this;
}
template
<class T>
complexe<T> complexe<T>::operator*(complexe<T> &z){
complexe<T> k;
k.re*=z.re;
k.im*=z.im;
}
template
<class T>
ostream& operator <<(ostream &out,const complexe<T> &e){
cout<<"la partie reel";
out<<e.getre;
cout<<"partie imaginair";
out<<e.getim;
return out;
}
template
<class T>
istream& operator >>(istream &in,complexe<T> &e){
in>>e.setre;
in>>e.setim;
return in;
}