C'etait un devoir que je devais faire. Il utilise le principe objet. Instanciation, constructeur et destructeur, surcharge d'operateurs.
Vous m'excuserez si il y a quelque chose qui bug... OU QUI MANQUE
Source / Exemple :
fichier Chaine.h :
Code:
class Chaine {
private :
char * chaine;
public :
Chaine();//constructeur par défaut
Chaine(char * pChaine);//constructeur parametre
Chaine(const Chaine & C); // constructeur par recopie
~Chaine();
Chaine& operator = (Const Chaine & C); //surcharge de l'operateur d'affectation
int operator == (Chaine C); // surcharge de l'operateur de comparaison
char * ObtenirCaractere();//méthode d'acces à l'attribut caractere
void ModifierCaractere(char * pChaine); //méthode de modification du caractere
friend std::ostream& operator <<(std::ostream& os, const Chaine& C); //affichage
};
fichier Chaine.cpp :
Code:
#include "Chaine.h"
#include <iostream>
#include <string.h>
Chaine::Chaine(char * pChaine ="") //constructeur parametre + par défaut
{
Chaine = new char[strlen(pChaine)+1];
strcpy(Chaine, pChaine);
}
Chaine::Chaine(const Chaine & C) // constructeur par recopie
{
Chaine = new char[strlen(C.chaine)+1];
strcpy(chaine, C.chaine);
}
Chaine::~Chaine()
{
delete [] Chaine;
}
Chaine& Chaine::operator = (Const Chaine & C) //surcharge de l'operateur d'affectation
{
char * temp = new char[strlen(C.Chaine)+1];
strcpy(Chaine, C.ObtenirCaractere());
delete [] Chaine;
Chaine = temp;
return *this;
//ancien code : (celui du cours)
//int longueur = strlen(C.ObtenirCaractere())+1;
//delete [] Chaine;
//Chaine = new char[longueur];
//strcpy(Chaine, C.ObtenirCaractere());
//return *this;
}
bool Chaine::operator == (Chaine C) // surcharge de l'operateur de comparaison
{
return !strcmp(Chaine, C.obtenircaractere());
}
char * Chaine::ObtenirCaractere() const//méthode d'acces à l'attribut caractere
{
return Chaine const;
}
void Chaine::ModifierCaractere(char * pChaine) //méthode de modification du caractere
{
delete [] Chaine;
Chaine = new char [strlen(pChaine)+1];
strcpy(Chaine, pChaine);
}
std::ostream& operator <<(std::ostream& os, const Chaine& c)
{
return os << C.Chaine;
}
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.