0% encontró este documento útil (0 votos)
8 vistas11 páginas

Template Formato

El documento presenta ejemplos de programación en C++ que incluyen el uso de plantillas, clases, constructores, destructores, y herencia. Se abordan conceptos como la creación de funciones amigas, la implementación de polimorfismo y miembros virtuales, así como la gestión de memoria con copias profundas. Además, se muestran aplicaciones prácticas de estas características a través de ejemplos de cálculo de áreas y volúmenes.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
8 vistas11 páginas

Template Formato

El documento presenta ejemplos de programación en C++ que incluyen el uso de plantillas, clases, constructores, destructores, y herencia. Se abordan conceptos como la creación de funciones amigas, la implementación de polimorfismo y miembros virtuales, así como la gestión de memoria con copias profundas. Además, se muestran aplicaciones prácticas de estas características a través de ejemplos de cálculo de áreas y volúmenes.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

Uso del Template especializado

template <class Fisica>


Fisica Fuerza(Fisica m, Fisica a) {
Fisica resultado;
resultado= m*a;
return (resultado);
};
int main (){
float m=6,a=5;
float F;
F=Fuerza<float>(m,a);
cout<<"La Fuerza es: "<<F<<endl;
return 0;
}

classes y default constructores

// classes y default constructores


#include <iostream>
#include <string>
using namespace std;
class Ejemplo {
string dato;
public:
Ejemplo (const string& str) : dato(str) {}
Ejemplo () {}
const string& contento() const {return dato;}
};

int main () {
Ejemplo foo;
Ejemplo bar ("ejemplo");

cout << "bar's contento: " << bar.contento() << '\n';


return 0;

destructores

// destructors
#include <iostream>
#include <string>
using namespace std;

class Ejemplo {
string* ptr;
public:
// constructors:
Ejemplo() : ptr(new string) {}
Ejemplo (const string& str) : ptr(new string(str)) {}
// destructor:
~Ejemplo () {delete ptr;}
// access content:
const string& content() const {return *ptr;}
};

int main () {
Ejemplo foo;
Ejemplo bar ("Example");

cout << "bar's content: " << bar.contento() << '\n';


return 0;
}

copia constructores: deep copia


// copy constructor: deep copy

#include <iostream>
#include <string>
using namespace std;

class Ejemplo {
string* ptr;
public:
Ejemplo (const string& str) : ptr(new string(str)) {}
~Ejemplo () {delete ptr;}
// copy constructor:
Ejemplo (const Ejemplo4 x) : ptr(new string(x.content()))
{}
// access content:
const string& content() const {return *ptr;}
};

int main () {
Ejemplo foo ("Ejemplo");

Ejemplo bar = foo;

cout << "bar's content: " << bar.contento() << '\n';


return 0;
}
copia

// default and delete implicit members


#include <iostream>
using namespace std;
class Rectangulo {
int base, altura;
public:
Rectangulo(int x, int y) : base(x), altura(y) {}
Rectangulo () = default;
Rectangulo (const Rectangulo & other) = delete;
int area() {return base*altura;}
};

int main () {
Rectangulo foo;
Rectangulo bar (10,20);

cout << "bar's area: " << bar.area() << '\n';


return 0;
}

funciones amiga

// friend functions
#include <iostream>
using namespace std;

class Rectangulo {
int base, altura;
public:
Rectangulo() {}
Rectangulo (int x, int y) : altura(x), base(y) {}
int area() {return base * altura;}
friend Rectangulo duplicate (const Rectangulo&);
};

Rectangulo duplicate (const Rectangulo& param)


{
Rectangulo rec;
rec.base = param.base*2;
rec.altura = param.altura*2;
return res;
}

int main () {
Rectangulo foo;
Rectangulo bar (2,3);`
foo = duplicate (bar);
cout << foo.area() << '\n';
return 0;
}

clases amigas

// class amiga
#include <iostream>
using namespace std;

class cuadrado;

class Rectangulo {
int base, altura;
public:
int area ()
{return (base * altura);}
void convertir (cuadrado a);
};

class cuadrado {
friend class Rectangulo;
private:
int side;
public:
cuadrado (int a) : side(a) {}
};

void Rectangulo::convertir (cuadrado a) {


base = a.lado;
altura= a.lado;
}

int main () {
Rectangulo rect;
cuadrado cua (4);
rect.convertir(cua);
cout << rect.area();
return 0;

}
class deriva

// clases derivada
#include <iostream>
using namespace std;

class Poligono{
protected:
int base, altura;
public:
void variables (int a, int b)
{ base=a; altura=b;}
};

class Rectangulo: public Poligono {// derivadas 1


public:
int area ()
{ return base * altura; }
};

class Triangulo: public Poligono { //derivadas 2


public:
int area ()
{ return base * altura / 2; }
};

int main () {
Rectangulo rect;
Triangulo trgl;
rect.variables(4,5);
trgl.variables(4,5);
cout << rect.area() << '\n';
cout << trgl.area() << '\n';
return 0;
}

constructor y clases derivadas


// constructor y clases derivadas
#include <iostream>
using namespace std;

class Mama {
public:
Mama ()
{ cout << "Mama: no parameters\n"; }
Mama (int a)
{ cout << "Mama: int parameter\n"; }
};

class Tia : public Mama{


public:
Tia (int a)
{ cout << "Tia: int parameter\n\n"; }
};

class Hijos: public Mama {


public:
Hijos(int a) : Mama (a)
{ cout << “Hijos: int parameter\n\n"; }
};

int main () {
Tia Ali(0);
Hijos Sebastian(0);

return 0;

template
template <class Circulo>

Circulo areaCirculo(Circulo radio) {

return 3.14 * radio * radio;

int main()

double radio = 3.3333333;

cuadradoP = areaCuadrado(lado);

areaC = areaCirculo(radio);cout<<"Area Circulo: "<<areaC<<endl;

return 0;

herencia multiple

// herecia multiple
#include <iostream>
using namespace std;

class Poligono{
protected:
int base, altura;
public:
Poligono (int a, int b) : base(a), altura(b) {}
};

class Salida {
public:
static void imprime (int i);
};

void Salida::imprime (int i) {


cout << i << '\n';
}

class Rectangulo: public Poligono, public Salida {


public:
Rectangulo(int a, int b) : Poligono(a,b) {}
int area ()
{ return base*altura; }
};

class Triangulo: public Poligono, public Salida {


public:
Triangulo (int a, int b) : Poligono(a,b) {}
int area ()
{ return base*altura/2; }
};

polimorfismo

// pointers to base class


#include <iostream>
using namespace std;

class Poligono{
protected:
int base, altura;
public:
void valores (int a, int b)
{ base=a; altura=b; }
};

class Rectangulo: public Poligono {


public:
int area()
{ return base*altura; }
};

class Triangulo: public Poligono{


public:
int area()
{ return base*altura/2; }
};

int main () {
Rectangulo rect;
Triangulo trgl;
Poligono * ppoly1 = &rect;
Poligono * ppoly2 = &trgl;
ppoly1->valores (4,5);
ppoly2->valores(4,5);
cout << rect.area() << '\n';
cout << trgl.area() << '\n';
return 0;
}

miembros vitual

// virtual members
#include <iostream>
using namespace std;

class Poligono {
protected:
int base, altura;
public:
void variables (int a, int b)
{ base a; altura =b; }
virtual int area ()
{ return 0; }
};

class Rectangulo: public Poligono {


public:
int area ()
{ return base * altura; }
};

class Triangulo: public Poligono {


public:
int area ()
{ return base * altura / 2); }
};

int main () {
Rectangulo rect;
Triangulo trgl;
Poligono poly;
Poligono * ppoly1 = &rect;
Poligono * ppoly2 = &trgl;
Poligono * ppoly3 = &poly;
ppoly1->variables (4,5);
ppoly2-> variables (4,5);
ppoly3-> variables (4,5);
cout << ppoly1->area() << '\n';
cout << ppoly2->area() << '\n';
cout << ppoly3->area() << '\n';
return 0;

template

template <class Cubo>


Cubo volumencub (Cubo l){
return (4*3.14*l*l*l)/3; }
int main(){
int radio=5, hco=5, hci=3, rci=2, res=6, volumenpiramide,
volumenbase, volumencubo;
volumenpiramide=volumenpir(radio,hco);
volumenbase=volumenbas(rci,hci);
volumencubo=volumencub(res);
cout<<"\t\t****PROYECTO DE POO-APLICACION DE TEMPLATE****\n";
cout<<"\t\t\t\t**ESIME-ICA***\n";
cout<<"\t\tALUMNO:CASARRUBIAS HERNANDEZ JOSE ARMANDO.\n\n";
cout<<"El volumen de la piramide es:
"<<volumenpiramide<<endl; cout<<"\nEl volumen del cubo
es: "<<volumencubo<<endl; cout<<"\nEl valor de la base es
de: "<<volumenbase<<endl; system("pause");
return 0; }

También podría gustarte