Ejemplo No.1
#include <iostream>
using namespace std;
class Vehiculo {
public:
void avanza() {}
};
class Coche : public Vehiculo {
public:
void avanza(void)
{ cout << "Avanza coche." << endl; }
};
class Moto: public Vehiculo {
public:
void avanza(void)
{ cout << "Avanza moto." << endl; }
};
int main()
{
Moto t;
Coche c;
t.avanza();
c.avanza();
return 0;
}
Elementos
Clase: Descripción abstracta de un grupo de objetos (Patrón).
Objeto: Elemento con identidad propia.
Atributo: Variables definidas en la clase.
Método: Funciones definida en la clase.
Mensaje: Acción incorporada en el objeto.
Realizado
Clase: estudiantes.
Objeto obj.
Atributo: nombre, apellido, código.
Métodos: ingresar, eliminar, mostrar, buscar.
Ejemplo No.2
#include<iostream>
using namespace std;
class persona{
string nom,ape;
int ced;
public:
void ingresar(){
cout<<"Ingresar"<<endl;
cout<<"--------"<<endl;
cout<<"Nombre: ";cin>>nom;
cout<<"Apellido: ";cin>>ape;
cout<<"Cedula: ";cin>>ced;}
void mostrar(){
cout<<"Mostrar"<<endl;
cout<<"-------"<<endl;
cout<<"Nombre: "<<nom<<endl;
cout<<"Apellido: "<<ape<<endl;
cout<<"Cedula: "<<ced<<endl;}};
main(){
persona obj;
obj.ingresar();
system("cls");
obj.mostrar();
system("pause");}
De la misma manera, podríamos tener otro objeto pedro que es una instancia de la
clase medico. Cómo pedro trabaja para un laboratorio de productos famaceúticos,
es también un asalariado, pero no un obrero. De esta manera nos queda una
realación en el nivel superior de nuestra jerarquía de clases tendríamos
que: medico y obrero son asalariados y a su vez personas.
persona
asalariado
obrero
medico
Si bien podemos seguir la jerarquía de clases hacia arriba diciendo "es un" hay
que tener en cuenta que no podemos decir ni que un obrero es un medico, ni que
un medico es un obrero, aunque ambos sean asalariado y persona
#include <iostream>
#include <cstring>
using namespace std;
//definición de la clase Numero
class persona
{
public:
persona(char[40] = "", int = 1);
void establecerEdad(int);
void mostrarEdad(void);
void establecerNombre(char[40]);
void mostrarNombre(void);
private:
int edad;
char nombre[40];
};
//Probamos la clase.
int main()
{
return 0;
}
#include <iostream>
class Persona
{
public:
Persona(int, string);
p1.leer();
p2.correr();
p3.leer();
p3.correr();
(void)cin.get();
return 0;
}
class Figura{
protected:
float x;
public:
Figura(float cx=0){
x = cx;
}
virtual float Perimetro() = 0;
virtual float Area() = 0;
};
// Clases derivadas
class Circulo: public Figura{
public:
Circulo(float radio){
x = radio;
}
float Perimetro(){
return 2* PI * x;
}
float Area(){
return PI * x * x;
}
};
Cuadrado cuad1(l);
Circulo Circ1(r);
cout << "El perimetro del circulo es:" << Circ1.Perimetro() << endl;
cout << "El área del circulo es:" << Circ1.Area() << endl;
cout << "El perimetro del cuadrado es:" << cuad1.Perimetro() << endl;
cout << "El area del cuadrado es:" << cuad1.Area() << endl;}
#include <iostream>
#include <locale>
class Figura{
protected:
float x;
public:
Figura(float cx=0){
x = cx;
}
virtual float Perimetro() = 0;
virtual float Area() = 0;
};
// Clases derivadas
class Circulo: public Figura{
public:
Circulo(float radio){
x = radio;
}
float Perimetro(){
return 2* PI * x;
}
float Area(){
return PI * x * x;
}
};
public:
Cuadrado(float lado){
x = lado;
}
float Perimetro(){
return 4 * x;
}
float Area(){
return x * x;
}
};
int main(){
setlocale(LC_ALL, "");
float l, r;
Figura *figuras[10];
Simular la pelea de dos gatos, crear dos objetos gato e implementar una función
que le permita a un gato arañar a otro gato, cada arañazo que recibe un gato le
quita una vida. El programa debe de decidir de forma aleatoria que gato es
arañado, todo esto mientras ninguno de los gatos tengan 0 vidas. Al final del
programa deberá de decir que gato ganó.
#include <iostream.h>
#include <string.h>
#include <stdlib.h>
class gato
{
private:
char color[20]; //atributo
int vidas; //atributo
public:
gato(char c[]) //constructor
{
strcpy(color,c);
vidas = 9;
}
void miau() //comportamiento
{
cout<<"Miiaaauu!!!\n";
}
int devVidas() //función miembro
{ return vidas; }
void modVidas(int v) //función miembro
{ vidas = v; }
void arania(gato &otroGato)
{
otroGato.modVidas( otroGato.devVidas() - 1 );
otroGato.miau();
}
};
void main()
{
gato Tom("blanco"), Gardfield("negro");
int quienArania;
randomize(); //para que se generen nros randomicos
distintos
while( Tom.devVidas() > 0 || Gardfield.devVidas() > 0 )
{
quienArania = random( 2 );
if ( quienArania )
Tom.arania( Gardfield );
else
Gardfield.arania( Tom );
}
if(Tom.devVidas() == 0)
cout<<"Ganó Gardfield";
else
cout<<"Ganó Tom";
}
//------------------------
class Pareja
{
// atributos
double a, b;
public:
// constructor de base (null)
Pareja() {}
// constructror parametrizado
Pareja(double x, double y) : a(x), b(y) {}
// métodos
double getA();
double getB();
void setA(double n);
void setB(double n);
};
//------------------------
class Suma : public Pareja
{
// atributos de Suma
double resultado;
public:
// constructor
Suma(double a, double b) : Pareja(a, b) {}
// métodos de Suma
double calcular();
};
// implementación de Suma
//
double Suma::calcular() { return getA() + getB(); }
//------------------------
int main()
{
Suma s(80, 100);
cout << s.getA() << " + " << s.getB() << " = " << s.calcular() << endl;
cin.get();
return 0;
}
class Padre{
public:
};
public:
int otro(int x) {}
};
class Nieta: public Hija {
public:
};
};
};
int main(){
p->ejemplo(1);
p->ejemplo(1,2);
p->otro(1);
p->otro(1,2,3);
ph->ejemplo(1);
ph->ejemplo(1,2);
ph->otro(1);
ph->otro(1,2);
/* TEST */
p=Test(new Padre());
ph=(Hija*)Test(new Hija());