/* Ce fichier fournit les bases de l'implémentation d'une classe template qui permet de savoir si une variable a été ou non initialisé. pour faire du copier coller, il y a un fichier avec le même nom mais l'extension .txt sur le serveur. pour la lib advio : http://jvstats.free.fr\temp\advio.zip */ #include "advio.h" #ifndef NULL # define NULL 0 #endif template class var { public: var() {_est_vide=true;} var(T init) {_est_vide=false;variable=init;} var& operator=(T autre) {variable=autre;_est_vide=false; return *this;} var& operator=(var autre) {if (!autre.est_vide()) operator=(autre.val()); return *this;} void delete() {_est_vide=true;} T val() {if (_est_vide) return NULL; return variable;} bool est_vide() {return _est_vide;} private: T variable; bool _est_vide; }; int main() { var a,b; advio console; console << a.est_vide() << " " << b.est_vide() << " " << a.val() << " " << b.val() << crlf; b=a=5; console << a.est_vide() << " " << b.est_vide() << " " << a.val() << " " << b.val() << crlf; console.pause(); return(0); }