Docsity
Docsity

Prepara tus exámenes
Prepara tus exámenes

Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity


Consigue puntos base para descargar
Consigue puntos base para descargar

Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium


Orientación Universidad
Orientación Universidad


Herencia y Polimorfismo en C++: Ejemplo de Cuadrilateros, Circulos y Cilindros, Ejercicios de Programación Informática

Un ejemplo de herencia simple y multinivel en C++ a través de la creación de clases Cuadrilatero, Rectángulo, Rombo, Trapecio, Circulo, Cilindro y CilindroHueco. Cada clase hereda propiedades y métodos de la clase superior y agrega comportamientos propios. El documento incluye la definición de las clases, la creación de objetos y la calculación de áreas y volúmenes.

Tipo: Ejercicios

2020/2021

Subido el 04/10/2021

abrahamsopla
abrahamsopla 🇲🇽

1 documento

1 / 5

Toggle sidebar

Esta página no es visible en la vista previa

¡No te pierdas las partes importantes!

bg1
Abraham Sopla
#pragma once
//Cuadrilatero regular
//cuadrado, rombo, rectangulo
#include <iostream>
using namespace std;
class CCuadrilatero
{
protected:
int ladoa;
int ladob;
public:
CCuadrilatero() {}
~CCuadrilatero() {}
//seters y geters
void setLadoa(int la) { ladoa = la; }
int getLadoa() { return ladoa; }
void setLadob(int lb) { ladob = lb; }
int getLadob() { return ladob; }
};
#pragma once
#include "Cuadrilatero.h"
//un rectangulo(SUBCLASE) ES un cuadrilatero(SUPERCLASE)
//estamos estableciendo la relacion de herencia
class Rectangulo: public CCuadrilatero
{
public:
Rectangulo() {}
~Rectangulo() {}
//comportamiento
double calculaArea() {
return ladoa * ladob;
}
};
#pragma once
#include "Cuadrilatero.h"
class CRombo : public CCuadrilatero
{
private:
public:
CRombo() {}
~CRombo() {}
double calcularArea()
{
pf3
pf4
pf5

Vista previa parcial del texto

¡Descarga Herencia y Polimorfismo en C++: Ejemplo de Cuadrilateros, Circulos y Cilindros y más Ejercicios en PDF de Programación Informática solo en Docsity!

#pragma once //Cuadrilatero regular //cuadrado, rombo, rectangulo #include using namespace std; class CCuadrilatero { protected: int ladoa; int ladob; public: CCuadrilatero() {} ~CCuadrilatero() {} //seters y geters void setLadoa(int la) { ladoa = la; } int getLadoa() { return ladoa; } void setLadob(int lb) { ladob = lb; } int getLadob() { return ladob; } }; #pragma once #include "Cuadrilatero.h" //un rectangulo(SUBCLASE) ES un cuadrilatero(SUPERCLASE) //estamos estableciendo la relacion de herencia class Rectangulo: public CCuadrilatero { public: Rectangulo() {} ~Rectangulo() {} //comportamiento double calculaArea() { return ladoa * ladob; } }; #pragma once #include "Cuadrilatero.h" class CRombo : public CCuadrilatero { private: public: CRombo() {} ~CRombo() {} double calcularArea() {

return ladoa * ladob / 2; } }; #pragma once #include "Cuadrilatero.h" class Trapecio : public CCuadrilatero { private: int altura; public: Trapecio() {} ~Trapecio() {} void setAltura(int a) { altura = a; } int getAltura() { return altura; } //comportameinto double calculaArea() { return altura(ladoa + ladob) / 2; } }; #include "Rectangulo.h" #include "Rombo.h" #include "Trapecio.h" //Herencia simple de un nivel con una subclase void main() { Rectangulo or = new Rectangulo(); or - >setLadoa(40); or - >setLadob(50); cout << "ARea: "<<or->calculaArea() << endl; CRombo* orombo = new CRombo(); orombo->setLadoa(50); orombo->setLadob(30); cout << "Area del rombo : " << orombo->calcularArea() << endl; Trapecio* ot = new Trapecio(); ot->setLadoa(20); ot->setLadob(30); ot->setAltura(15); cout << "Area del trapecio : " << ot->calculaArea() << endl; system("pause>>NULL"); } #pragma once

//comportamientos double areaCilindro() { return longitudCircunferencia() * altura+2areaCirculo(); } double volumenCilindro() { return areaCirculo() * altura; } }; / circulo radio areaCIrculo LongitudCircundefrencia ciclindro altura areaCilindro volumneCilindro cilindrioHUeco rarioHUeco areaCilindroHUeco volumenCilindroHUeco / #pragma once #include "Cilindro.h" class CClindroHueco: public Cilindro { private: int radioCH; public: CClindroHueco() {} ~CClindroHueco() {} void setRadioCH(int r) { radioCH = r; } int getRadioCH() { return radioCH; } //comportamientos double areaCilindroH() { return areaCirculo() * altura + 2 * 3.1416 * radioCH * altura+ 2(areaCilindro()-3.1416radioCHradioCH); } double volumenCilindroHueco() { return volumenCilindro()- 3.1416 * radioCH * radioCH*altura; } }; #include "CilindroHueco.h" //Herencia simple multinivel (2 niveles) void main() {

CClindroHueco* och = new CClindroHueco(); och->setRadio(30); och->setRadioCH(20); och->setAltura(45); cout << "Area del circulo : " << och->areaCirculo() << endl; cout << "Area del cilindro : " << och->areaCilindro() << endl; cout << "Area del cilindro hueco : " << och->areaCilindroH() << endl; system("pause>>NULL"); }