begin process at 2012 05 29 04:34:57
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C++ & C++ .NET

 > 

Divers

 > 

Général

 > 

file


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

file

mardi 27 février 2007 à 21:40:55 | file

mimosa803

 bonsoir à tous , bon j'ai fait une fait une classe file générique (avec une classe noeud générique).
Je veux tester cette classe en faisant file<complexe> fr.enfiler(c1(2,7)) , avec c1 est un complexe et jai declaré la classe complexe.
Le problème que cette classe fonctionne avec les types prédéfinies comme (int , char ,...)
mais avec par ex complexe ,elle ne marche pas.
bon veuillez m'aider à résoudre ce problème.
mardi 27 février 2007 à 21:47:18 | Re : file

mimosa803

bonsoir à tous , bon j'ai fait une fait une classe file générique (avec une classe noeud générique).
Je veux tester cette classe en faisant file<complexe> fr.enfiler(c1(2,7)) , avec c1 est un complexe et jai declaré la classe complexe.
Le problème que cette classe fonctionne avec les types prédéfinies comme (int , char ,...)
mais avec par ex complexe ,elle ne marche pas.
bon veuillez m'aider à résoudre ce problème.

voici le code:
#include<iostream.h>
class complexe
{
private:
 float re,im;
public:
 complexe();
 complexe(float);
 complexe(float ,float);
 ~complexe();
 complexe operator+(complexe);
 friend complexe operator+(complexe,float);
 complexe operator*(complexe);
};

// implémentation de complexe

#include"complexe.h"

complexe::complexe()
{}
complexe::complexe(float x,float y)
{
 re=x;
 im=y;
}

complexe::~complexe(){}

complexe::complexe(float x)
{
 re=x;
 im=0;
}

complexe complexe::operator +(complexe c)
{
 complexe d(re+c.re,im+c.im);
 return(d);
}

complexe complexe::operator *(complexe c)
{
 complexe d(re*c.re,im*c.im);
 return (d);
}

// noeud:
#include "complexe.h"
template <class T>
class noeud
{
private:
 T info;
 noeud<T> * suiv;

public:
 noeud(T, noeud<T>* =NULL);

 ~noeud();

 T getinfo() const;

 noeud<T>* getsuiv() const;
 
 void setsuiv(noeud<T>* s);

 
};

template <class T>
noeud<T>::noeud(T x,noeud<T>* s)
{
 info=x;
 suiv=s;
}
template <class T>
noeud<T>::~noeud(){}
template <class T>
T noeud<T>::getinfo() const
{ return info;}
template <class T>
noeud<T>* noeud<T>::getsuiv() const
{
 return suiv;
}
template <class T>
void noeud<T>::setsuiv(noeud<T>* s)
{
 suiv=s;
}
// file
#include"noeud.h"
template <class T>
class file
{
private:
 noeud<T> * tete;
public:
 file();
 ~file();
 void enfiler(T);
 T defiler();
 friend ostream& operator<< (ostream&, const file<T>&);

};

template <class T>
file<T>::file()
{
 tete=NULL;
}
template <class T>
file<T>::~file()
{
 if (tete != NULL)
 {
 noeud<T>* parc;
 noeud<T>* prec;
 parc = tete;
 while(parc != NULL)
  {
  prec=parc;
  parc = parc->getsuiv();
  delete prec;
  }
 }
}
template <class T>
void file<T>::enfiler(T x)
 {
 if (tete == NULL)
  tete = new noeud<T>(x);
    else
    { noeud<T>* parc = tete;
  while(parc->getsuiv()!=NULL)
   parc= parc->getsuiv();
  parc->setsuiv(new noeud<T>(x)); 
    }

 }
template <class T>
T file<T>:: defiler()
{

 T x=tete->getinfo();
  noeud<T>*parc=tete;
  tete=tete->getsuiv();
  delete parc ;
   return x;
 
}

template <class T>
ostream & operator << (ostream& o,const file<T> &f)
 {
  noeud<T>* p;
  p=f.tete;
  while(p!=NULL)
  {
   o<<p->getinfo();
   p=p->getsuiv();
   if(p!=NULL)
    o<<"->";
  }
 return o;
 }  
 
// void main
#include"file.h"
void main()
{
  file<int> fr;
 file<complexe>fr1;
 complexe c1(1,2);

   fr.enfiler(2);
  fr.enfiler(2);
  fr.enfiler(2);
  fr.enfiler(2);
fr1.enfiler(c1);///    erreur

 cout<<fr<<endl;
}

mardi 27 février 2007 à 22:54:14 | Re : file

azamharir

salut
le probleme est ds la fct :
template <class T> ostream & operator << (ostream& o,const file<T> &f)
tu dois definir le : o<<p->getinfo(); pour un complexe.
ajoute ça ds la classe complexe :
float complexe::get_re()
{
    return re;
}
float complexe::get_im()
{
    return im;
}


puis ajoute cette fct globale :
ostream& operator<<(ostream& s, complexe &c)
{
    s << c.get_re() << "\t"<< c.get_im() <<endl;
    return s;
}
ça marche pr moi.


Cette discussion est classée dans : file, classe, c1, générique, complexe


Répondre à ce message

Sujets en rapport avec ce message

classe template [ par mimosa803 ] bonsoir à tous , bon j'ai fait une fait une classe file générique (avec une classe noeud générique).Je veux tester cette classe en faisant file fr.enf une file Template dans un Vecteur Template [ par grand_duck ] voici le problème j'ai une classe de vecteur template et une classe de file template je voudrais mettre ma file template dans mon vecteur est-ce possi heritage [ par ifren ] Salut , je fais un stage, et je veux avoir une idée dite (idiomatique) pour resoudre un probleme en c++Probleme: J'ai une classe C (abstra heritage [ par ifren ] Salut , je fais un stage, et je veux avoir une idée dite (idiomatique) pour resoudre un probleme en c++Probleme: J'ai une classe C (abstra Classe liste chaînée générique [ par marik7335 ] Salut à tous,   Je souhaite gérer un parc de véhicules contenant des motos et des voitures. Pour se faire, j'ai donc implémenter trois classes : une Problème de visibilité [ par opossum_farceur ] Salut, Dans mon projet, je voudrais bien arriver à compiler quelque chose que l'on pourrait schématiser par le code suivant : [code=cpp]#include #in Inter action entre classe [ par lcamps ] Bonjour,J'ai un problème (basique je pense) d'utilisation de classe en C++ sous linux.J'ai deux classes C1 et C2.Je veux déclarer une liste d'objet C1 problème fenêtre cliente [ par raoulman ] Bonjour,J'ai un petit souci avec une fenêtre cliente et WM_PAINT, je m'explique.Aujourd'hui, j'ai une fenêtre qui contient une fenêtre cliente dedans. creation d'une classe [ par enrageur ] J'ailmerais créer une classe mais qui renvoie un entier. Je sais créer une classe mais qui ne renvoie rien. Comment faire ? Thread dans une classe [ par goondy ] Désolé de poser cette question, mais tous les exemples que j'ai pu trouver (et il y en a un paquet) traite d'un thread dans une appli avec une seule c


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,998 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales