Vargas Ibarra Diego
2AM5
8/05/2025
#include <iostream>
#include <string>
using namespace std;
class Persona
{
protected:
string nombre;
int edad;
public:
Persona(const string &nombre, int edad)
: nombre{nombre}, edad{edad}
{
}
virtual ~Persona()
{
}
virtual void Mostrar() const
{
cout << "\tNombre= " << nombre << '\n';
cout << "\tEdad= " << edad << " anios\n";
}
};
class Alumno : public Persona
{
string boleta;
public:
Alumno(const string &nombre, int edad, const string &boleta)
: Persona(nombre, edad), boleta(boleta)
{
}
void Mostrar() const override
{
Persona::Mostrar();
cout << "\tBoleta= " << boleta << '\n';
}
};
class Profesor : public Persona
{
string numEmpleado;
public:
Profesor(const string &nombre, int edad, const string &numEmpleado)
: Persona(nombre, edad), numEmpleado(numEmpleado)
{
}
void Mostrar() const override
{
1
Vargas Ibarra Diego
2AM5
8/05/2025
Persona::Mostrar();
cout << "\t#Empleado= " << numEmpleado << '\n';
}
};
int main()
{
Persona *p(nullptr);
Alumno alumno{"Juan", 18, "20241234"};
Profesor profesor{"X", 57, "12365"};
cout << "Alumno:\n";
p = &alumno;
p->Mostrar();
cout << "\nProfesor:\n";
p = &profesor;
p->Mostrar();
return 0;
}
2
Vargas Ibarra Diego
2AM5
8/05/2025
#include <iostream>
using namespace std;
class Figura
{
protected:
double base, altura;
public:
Figura(double base, double altura)
: base(base), altura(altura)
{
}
virtual ~Figura()
{
}
void Mostrar()
{
cout << "\tBase= " << base << " u\n";
cout << "\tAltura= " << altura << " u\n";
}
/***FUNCIÓN VIRTUAL PURA***/
virtual double CalcularArea() const = 0;
};
class Rectangulo : public Figura
{
public:
Rectangulo(double base, double altura)
: Figura(base, altura)
{
}
double CalcularArea() const override
{
return base * altura;
}
};
class Triangulo : public Figura
{
public:
Triangulo(double base, double altura)
: Figura(base, altura)
{
}
double CalcularArea() const override
{
return base * altura / 2.;
}
};
int main()
{
3
Vargas Ibarra Diego
2AM5
8/05/2025
Figura *f[2];
//Figura figura(5, 3); //ERROR...la clase Figura es Abstracta
Rectangulo rectangulo(5, 3);
Triangulo triangulo(5, 3);
string nomFig[2] = {"RECTANGULO", "TRIANGULO"};
f[0] = &rectangulo;
f[1] = &triangulo;
for(int i = 0; i < 2; i++)
{
cout << nomFig[i] << ":\n";
f[i]->Mostrar();
cout << "\tA= " << f[i]->CalcularArea() << " u^2\n\n";
}
return 0;
}