Sommaire

Autres aspects de la POO

1. Conversion dynamique

a. Conversions depuis un autre type

Les constructeurs permettent de convertir des objets à partir d’instances (de valeurs) exprimées dans un autre type.

Prenons le cas de notre classe Chaine. Il serait intéressant de "convertir" un char* ou un char en chaîne :

#include <string.h> 
 
class Chaine 
{ 
private: 
  char*buffer; 
  int t_buf; 
  int longueur; 
public: 
  // un constructeur par défaut 
  Chaine() 
  { 
    t_buf=100; 
    buffer=new char[t_buf]; 
    longueur=0; 
  } 
  Chaine (int t_buf) 
  { 
    this->t_buf=t_buf; 
    buffer=new char[t_buf]; 
    longueur=0; 
  } 
 
Chaine(char c) 
  { 
    t_buf=1; 
    longueur=1; 
    buffer=new char[t_buf]; 
    buffer[0]=c; 
  } 
 
  Chaine(char*s) 
  { 
    t_buf=strlen(s)+1; 
    buffer=new char[t_buf]; 
    longueur=strlen(s); 
    strcpy(buffer,s); 
  }     
 
  void afficher() 
  { 
    for(int i=0; i<longueur; i++) 
      printf("%c",buffer[i]); 
    printf("\n"); 
  } 
} ; 
 
int main(int argc, char* argv[])  ...