/* IFT1169 - démonstration #05 - exercice 04 - 19-février -2006 v1.00 M.Lokbani - l'énoncé+solution + gcc3.4.2 à partir de l'énoncé de l'examen Final session Hiver 2001 - IFT1166 - contact: lokbani@iro.umontreal.ca Copyright (C) 1999-2006 Université de Montréal Département d'informatique et de Recherche Opérationnelle Mohamed Lokbani -- Tous Droits Réservés -- All Rights Reserved -- Description: ------------ Complétez la classe String suivante Deux opérateurs non fournis qu'il faudra écrire (définir). operator+=(const String& A); String& String::operator+=(const String& A){ int n = get_taille(); int m = A.get_taille(); len = n + m; char* nouv_s = new char[len + 1]; for (int i = 0; i < n; i++) nouv_s[i] = s[i]; for (int j = 0; j < m; j++) nouv_s[n+j] = A[j]; nouv_s[len] = '\0'; delete [] s; s = nouv_s; return *this; } operator+(const String& A, const String& B); String operator+(const String& A, const String& B){ String resultat(A); resultat += B; return resultat; } */ #include #include class String { char* s; int len; public: // déjà fournies donc à ne pas écrire int get_taille(); // retourne la taille String(); // initilise à zéro/NULL les éléments de String. String(const char*); ~String(); String(const String&); String& operator=(const String&); void affiche(); // affiche les éléments de String };