Squelette erroné ?!

Spolixjo Messages postés 1 Date d'inscription mercredi 25 mai 2005 Statut Membre Dernière intervention 24 avril 2010 - 24 avril 2010 à 03:12
cs_exar Messages postés 286 Date d'inscription vendredi 5 décembre 2003 Statut Membre Dernière intervention 22 avril 2012 - 17 juil. 2010 à 21:45
Bonjour,

J'ai reçu un exercice niveau 1ère année BTS IRIS qui consiste à compléter ce squelette ci-dessous.

Je souhaiterai avoir l'avis d'une personne qui pourrai me dire si ce squelette est crédible.

En ayant déjà potassé avec un ami, nous avons trouvé plusieurs erreurs mais je pense ne pas avoir tout trouvé.

Merci de votre aide.


#include 
#include <conio.h>

using namespace std;

class chaine
{
    private :


    public :




};

chaine::chaine() //constructeur1
{

}

chaine::chaine(char *texte) //constructeur2
{

}

void chaine::operator = (chaine &ch)
{

}

int chaine::operator == (chaine ch)
{

}

chaine &chaine::operator +(chaine ch)
{

}

char &chaine::operator [](int i)
{

}

chaine::~chaine()
{

}

void chaine::affiche()
{

}

void main()
{
    chaine a("Bonjour "),b("Maria"),c,d("Bonjour "),e;

    if (a==b)   cout << "Gagne !\n";
    else        cout << "Perdu !\n";
    if (a==d)   cout << "Gagne !\n";
    else        cout << "Perdu !\n";
    cout << "a: ";
    a.affiche();
    cout << "b: ";
    b.affiche();
    cout << "d: ";
    d.affiche();
    c = a+b;
    cout << "c: ";
    c.affiche();

    for(int i=0; c[i]!='\0'; i++)
            cout << c[i];
    getch();
}


PS: je vous donne les données pour aider à la compréhension du squelette.

Données:
- longueur de la chaîne (entier)
- adresse d'une zone allouée dynamiquement (pointeur sur caractères)

Méthodes:
- constructeur chaine()( initialise une chaine vide
- constructeur chaine(char *) initialise avec la chaîne passée en argument
- opérateurs affectation (=),
- opérateurs de comparaison (= =),
- opérateurs (+), premettant de concaténer deux chaînes de caractères
- opérateurs ([]), permettant d'accéder à un caractère de rang donné dans une chaîne de caractères
- affiche(), permettant l'affichage à l'écran d'une chaîne de caractères.

1 réponse

cs_exar Messages postés 286 Date d'inscription vendredi 5 décembre 2003 Statut Membre Dernière intervention 22 avril 2012 1
17 juil. 2010 à 21:45
#include <conio.h> ? En C++ ? Beurk...
Sinon, dans tes données, tu n'as pas besoin vraiment de la longueur de la chaîne...
Dans ta liste, tu as oublié le destructeur (!!! super important, tu utilises des pointeurs !)
Sinon, quand tu passes un "chaine" dans une méthode, passe le comme const chaine& pour les perfs.Ex:
chaine& chaine::operator=(const chaine& ch)

Exercice amusant pour apprendre à "dompter" les pointeurs... Bien que ce n'est que la base.
Rejoignez-nous