Ver Mensaje Individual
  #13 (permalink)  
Antiguo 10/09/2008, 02:48
Avatar de anlhp
anlhp
 
Fecha de Ingreso: agosto-2008
Mensajes: 121
Antigüedad: 15 años, 8 meses
Puntos: 1
Respuesta: en php se heredan los constructores?

bueno, aun y todavia no he hecho las pruebas correspondientes pero lo que sucede que programaba en c++ y tiendo a tratar de reprocharle a php cosas de c++, cosa que hago por no saber mucho y no poder explotar la potencia de php, pero bueno,si le sirve de aclaracion a alguien lo que sucede en c++, un lenguaje que permite sobrecarga de operadores y metodos, que por lo general, a las clases que no tienen constructor, el compilador o alguien le proporciona un constructor por defecto llamado (al menos yo le llamo asi) constructor de oficio, ademas de que puedes sobrecargar el constructor de tu clase para crear diferentes constructores, yo por lo general siempre creo al menos tres:
- constructor por defecto o inicializacion
- constructor de conversion
- constructor de copia
cosa que ahora tengo que hacer dentro de uno solo en php, pero si vamos al grano del asunto de este tema, c++ y creo que todos los lenguajes con orientacion a objetos, al no permitir que el constructor se herede tratan de mantener la integridad de nuestros objetos (un objeto no puede inicializar a otro) y mantener una secuencia logica en la creacion del objeto ya que los constructores se van llamando de manera secuencial desde la primera clase (base) hasta la ultima (derivada), por tanto, si no creamos un constructor en nuestra clase derivada, vale, por lo general no debe suceder nada (al menos, no en php), el problema vendria si tratamos de llamar a un metodo constructor en una clase derivada y que, por ende, dicho constructor no existe porque no lo hemos definido y porque no se hereda.
Es por esto que me gustaba mas la sintaxis de php en la que se establece que el nombre del constructor sea el mismo que el de la clase:
class TMyClass {
...
public TMyClass(); //constructor de TMyClass
...
}

asi queda mas ilustrado el hecho, de que no puedes tener como constructor en una clase digamos TMyExceptionClass, a un metodo llamado TMyClass()

uff!!! vaya lio este de los constructores, pero creo que es fructifero jeje, es un tema importante y que muchos lo dan por banal o tonto, y es cuando sucede que le pasan un parametro extraño al constructor de algun objeto, y este se vuelve inconsistente y comienza a hacer, digamos, cosas extrañas XD