c_file.h: #ifndef c_fileH #define c_fileH class c_file { public: c_file(); ~c_file(); void enfiler(long quoi); bool defiler(long &ou); private: long *tab; long *tab2; long taillefile; }; //--------------------------------------------------------------------------- #endif c_file.cpp: #pragma hdrstop #include "c_file.h" c_file::c_file() { taillefile=0; tab=new long[taillefile]; } void c_file::enfiler(long quoi) { tab2=new long[taillefile]; for(long i=0;i<taillefile;i++) //on recopie le tableau dans un autre { tab2[i]=tab[i]; } delete tab; //on libere l espace du tableau... taillefile++; tab=new long[taillefile]; //pour en faire un d une case de plus for(long i=0;i<taillefile-1;i++) // et on recupere notre ancien tableau { tab[i]=tab2[i]; } delete tab2; tab[taillefile-1]=quoi; } bool c_file::defiler(long &ou) { bool retour=false; if(taillefile>0) { ou=tab[0]; tab2=new long[taillefile-1]; for(long i=1;i<taillefile;i++) //on recopie le tableau dans un autre { tab2[i-1]=tab[i]; } delete tab; //on libere l espace du tableau... taillefile--; tab=new long[taillefile]; //pour en faire un d une case de plus for(long i=0;i<taillefile;i++) // et on recupere notre ancien tableau { tab[i]=tab2[i]; } delete tab2; retour=true; } return retour; } c_file::~c_file() { delete tab; } //--------------------------------------------------------------------------- #pragma package(smart_init) application.cpp: #pragma hdrstop //--------------------------------------------------------------------------- #pragma argsused #include <iostream> using namespace std; #include "c_file.h" int main(int argc, char* argv[]) { short choix; long temp; c_file o_file; do{ cout<<"1.Enfiler"<<endl; cout<<"2.Defiler"<<endl; cout<<"3.Quitter"<<endl; cout<<"Choix: "; cin>>choix; if(choix==1) { cout<<"Entrez la valeur a enfiler: "; cin>>temp; o_file.enfiler(temp); } if(choix==2) { if(o_file.defiler(temp)) cout<<"Valeur defilee :"<<temp<<endl; else cout<<"La file est vide"<<endl; } }while(choix!=3); return 0; } //---------------------------------------------------------------------------
pas mal, ca a tj un avantage de redefinir ses propres classes conteneur (rien que pour la vitesse)pour une utilisation plus sur rajoute le constructeur par copie et l'operateur =remarque: pourquoi ne pas l'avoir fait en generique ?
Se souvenir du profil
Mot de passe oublié ? / Activation de compteCréer un compte
1 872 601 membres 41 nouveaux aujourd'hui 16 150 membres club