Squelette erroné ?!

Signaler
Messages postés
1
Date d'inscription
mercredi 25 mai 2005
Statut
Membre
Dernière intervention
24 avril 2010
-
Messages postés
286
Date d'inscription
vendredi 5 décembre 2003
Statut
Membre
Dernière intervention
22 avril 2012
-
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

Messages postés
286
Date d'inscription
vendredi 5 décembre 2003
Statut
Membre
Dernière intervention
22 avril 2012
1
#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.