// 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( );
}