// DESCRIPTOR DE CARACTERES - HERENCIA MULTIPLE using namespace std; #include <iostream> #include <cctype> #include <cstring> class Simbolo { public: void MuestraS ( char ); }; class Numero { public: void MuestraN ( char ); }; class Letra { public: void MuestraL ( char ); }; class Operador { public: void MuestraO ( char ); }; class Cadena : Simbolo, Numero, Letra, Operador { char CAD[20]; public: void LeeTexto( ); void LeeCaracter( ); }; void Operador:: MuestraO ( char CAR ) { cout << CAR << " Es operador\n"; } void Simbolo:: MuestraS ( char CAR ) { cout << CAR << " Es letra\n"; } void Numero :: MuestraN ( char CAR ) { cout << CAR << " Es numero\n"; } void Letra :: MuestraL ( char CAR ) { cout << CAR << " Es letra\n"; } void Cadena::LeeTexto( ) { cout << "Introduce la cadena: "; cin >> CAD; } void Cadena::LeeCaracter( ) { int idx = 0; while ( CAD[idx] != '\0' ) { if ( isalpha ( CAD[idx] ) ) MuestraL(CAD[idx]); else if ( isdigit ( CAD[idx] ) ) MuestraN(CAD[idx]); else if ( strchr("+-*/", CAD[idx]) ) MuestraO(CAD[idx]); else if ( isprint ( CAD[idx] ) ) MuestraS(CAD[idx]); idx++; } } main() { Cadena Texto; Texto.LeeTexto( ); Texto.LeeCaracter( ); }