HERENCIA_MULT.cpp



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