Pascal/Turbo Pascal - Dudas OOP

 
Vista:

Dudas OOP

Publicado por Homer (3 intervenciones) el 04/08/2007 17:51:39
Hola, tengo un problema con la OOP (Programacion Orientada a Objetos). El caso es que no entiendo casi nada de lo que hacen funciones como por ejemplo: "virtual". ¿Me podéis recomendar algún PDF, página web, etc.. en el que se explique este tipo de progrmacion? De todas formas tengo un problema desde hace unos meses con un programa, luego paso el código y mi duda porque ahora mismo no sé en qué apuntes lo tengo.

Gracias.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Dudas OOP

Publicado por Homer (3 intervenciones) el 04/08/2007 19:07:13
Bueno, tal y como dije antes, tengo un verdadero problema con este programa y es que fui al examen de Junio sin saber lo que hacía en realidad y lo peor... cayó en el examen jejeje.

El problema es que no entiendo bien la Programación Orientada a Objetos y, a parte, este programa no me ayuda porque no me compila bien. El error está en la llamada a "Jugador1.Init(x);" desde el "Constructor Jugador2.Init". Ahí me da un error y por eso jamás he entendido la OOP. Luego, el profesor dijo que con esto sabríamos y controlaríamos mas o menos todo. Y para controlarlo mejor, que pongamos 'virtual' en los procedimientos, etc... pero jamás he podido porque no me compila.

El caso es que en el examen cayó el mismo código asi que, en teoría debería compilar. Me podéis ayudar??? Gracias!

El código:

program OOP;

type
Jugador1 = object

private
x_ : integer;

public
constructor Init(x : integer);
destructor Done;
procedure Visualizar;

end;

Jugador2 = object

private
y_ : integer;

public
constructor Init(x, y : integer);
destructor Done;
procedure Visualizar;

end;

{ ------------------------------- }

Constructor Jugador1.Init(x : integer);
begin
x_ := x;
writeln('Hola JUGADOR 1');
end;

{ ------------------------------- }

Destructor Jugador1.Done;
begin
write('Adios JUGADOR 1');
end;

{ ------------------------------- }

procedure Jugador1.Visualizar;
begin
write('Tipo Jugador1: ', x_);
end;

{ ------------------------------- }

Constructor Jugador2.Init(x, y : integer);
begin
Jugador1.Init(x);
y_ := y;
writeln('Hola JUGADOR 2');
end;

{ ------------------------------- }

Destructor Jugador2.Done;
begin
write('Adios JUGADOR 2');
Jugador1.Done;
end;

{ ------------------------------- }

procedure Jugador2.Visualizar;
begin
write('Tipo Jugador2: ', x_, y_);
end;

{ ------------------------------- }

var
a: ^Jugador2;
b: ^Jugador1;
c: array[1..2] of ^Jugador1;

begin
new(a, Init(1,2));
new(b, Init(100));
c[1] := a;
c[2] := b;
c[1]^.Visualizar;
c[2]^.Visualizar;
dispose(c[1], Done);
dispose(c[2], Done);
end.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Dudas OOP

Publicado por Homer (1 intervención) el 09/08/2007 11:47:53
¿Nadie sabe la salida del programita? Yo aún no lo entiendo, no sé qué hace.

Gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar