tp6

Páginas: 5 (1006 palabras) Publicado: 3 de noviembre de 2015
Métodos Virtuales
Joel Maldonado∗
∗ Universidad

San Francisco de Quito (USFQ)
joel.maldonado@estud.usfq.edu.ec

Abstract—Se crea una super-clase y dos subclases con diferentes métodos y atributos, y se ayuda de métodos virtuales para
que el main realice lo que nosotros deseamos.
Index Terms—Métodos virtuales, Polimorfismo

I. I NTRODUCCIÓN
Un método virtual es un método el cual se puede volver
adefinir en clases derivadas. Esto permite que las clases
derivadas de una superclase tengan diferentes versiones de
un método.Para definir un método virtual se utiliza la palabra
Virtual, la cual avisa al compilador que el método sera distinto
en las diferentes clases. Por otro lado un puntero generalmente
no puede apuntar a un objeto de otro tipo. Sin embargo, los
punteros de una super-clasepueden apuntar a objetos de clases
derivadas de esta. Estos métodos son muy importantes ya
que forman parte del polimorfismo, el cual consiste en enviar
mensajes iguales a objetos distintos, con el único requisito de
que estos métodos sepan como responder.

Algorithm 2 Animal.h
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:

# include
class Animal
{
protected:
std::string nombreAnimal;
public:Animal();
std::string GetName();
void SetName(std::string);
virtual char* Speak();
};

En el Algoritmo 2 se declara los métodos de la clase
Animal. En el anterior algoritmo se puede observar que:


Línea 11: En la línea 11 se declara el método virtual con
un puntero.

B. Gato
Algorithm 3 Gato.cpp

II. D ESARROLLO

DEL DEBER

El deber consta de 7 archivos Animal.h, Animal.cpp ,
Gato.h , Gato.cpp ,Perro.h , Perro.cpp y main.cpp
A. Animal
Algorithm 1 Animal.cpp
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:

# include "Animal.h"
# include
# include
using namespace std;
Animal::Animal()
{
nombreAnimal=" ";
}
std::string Animal::GetName()
{
return nombreAnimal;
}
void Animal::SetName(std::string name)
{
nombreAnimal=name;
}
char* Animal::Speak()
{char* var= "NO IDEA";
return var;
}

En el Algoritmo 1 se desarollan los métodos de la superclase Animal. En el anterior algoritmo se puede observar que:
• Línea 17: En la línea 17 se observa el desarollo de método
virtual Speak, el cual consta de un puntero.

1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:

#
#
#
#

include
include
include
include

"Gato.h"


Gato::Gato()
{
nombreAnimal=" ";
}
char* Gato::Speak()
{
return "Miauw";
}

En el Algoritmo 3 se desarollan los métodos de la clase
Gato. En el anterior algoritmo se puede observar que:


Línea 11: En la línea 11 se declara un método virtual con
un puntero de tipo gato.

Algorithm 4 Gato.h
1:
2:
3:
4:
5:
6:
7:
8:

# include
class Gato : public Animal
{
public:
Gato();
virtual char* Speak();
};

Enel anterior algoritmo se puede observar que:


Línea 7: En la línea 7 se declara un método virtual con
un puntero y con la palabra Virtual

2

C. Perro



Algorithm 5 Perro.cpp
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:

#
#
#
#

include
include
include
include

"Perro.h"




Perro::Perro()
{
nombreAnimal=" ";
}
char* Perro::Speak()
{
return "woof";
}

En elAlgoritmo 3 se desarollan los métodos de la clase
Perro. En el anterior algoritmo se puede observar que:
• Línea 11: En la línea 11 se declara un método con un
puntero de tipo perro.
Algorithm 6 Perro.h
1:
2:
3:
4:
5:
6:
7:
8:

# include
class Perro : public Animal
{
public:
Perro();
virtual char* Speak();
};

En el anterior algoritmo se puede observar que:
• Línea 7: En la línea 7 se declaraun método virtual con
un puntero y con la palabra Virtual.
D. main
Algorithm 7 main.cpp
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:



Línea 17: Se crea un puntero de tipo Animal con el
nombre animal el cual accede a las propiedades del
constructor Gato()
Línea 18: Se crea un puntero de tipo Animal con el
nombre animal2 el cual accede a las propiedades del...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • TP6
  • TP6
  • TP6 IBMC
  • tp6 ibmc
  • PSICOPATOLOGÍA TP6
  • Tp6 Administracion General
  • WORD2010 TP6 OBLIGATORIO INTEGRADOR
  • Word2010 TP6 OBLIGATORIO INTEGRADOR

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS