Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Otros entornos y lenguajes > C++ Builder
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

 
 
Herramientas Buscar en Tema Desplegado
  #8  
Antiguo 26-11-2009
Avatar de escafandra
[escafandra] escafandra is offline
Miembro Premium
 
Registrado: nov 2007
Posts: 2.210
Poder: 22
escafandra Tiene un aura espectacularescafandra Tiene un aura espectacular
Cita:
Empezado por NEG1414 Ver Mensaje
hay un problema:
Yo declaro la Variable Reg en Clase2 como Global, la inicializo con una serie de valores pero una vez en FUNCION(); al ejecutar TClase2 *C2 =new TClase1(this) pierde eses valores y envia otros.
Ademas al salir de la funcion en la que llamo a clase1 (FUNCION()) la variable pierde los valores Modificados.

Es como si la variable Reg que paso como parametro del Constructor Clase1 fuera Local de Funcion().
Bueno, creo que estás algo liado y que no terminas de comprender alguna de las cosas de la POO.

En una clase no existen variables globales. Sólo son miembros públicos, protegidos o privados. Los públicos pueden ser accedidos por elementos externos de la clase a través de un objeto, pero serán siempre locales a ese objeto, es decir cada vez que crees una nueva instancia, sus valores no tienen porqué ser iguales. Los privados no podrán accederse nada mas que desde la misma clase y los protegidos se comportan como públicos para objetos de esa clase pero si de ella se deriva otra, se heredan como privados.

Existe un tipo especial de miembro que se declara como static, este tipo implica que sólo existirá una copia del mismo por lo que será común a todos los objetos creados de esa clase, es algo mas parecido a una variable global... y se accede a través del nombre de la clase y no desde un objeto. Existe aunque no existan objetos de esa clase. Como ves el sistema de encapsulamiento de datos de la POO del C++ es férreo y potente.

Por este motivo, si declaras dos objetos de una clase, sus datos miembros, en este caso, Reg (del tipo TRegistro) serán diferentes, a no ser que los declares static.

Ahora debes pensar en qué es lo que quieres hacer o conseguir y luego diseñar tus clases como mejor se ajusten a tus necesidades de desarrollo.

Espero no haberte confundido con mis pobres explicaciones.

Saludos.
Responder Con Cita
 


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
pasar un registro de un dbedit a otro con el procedure edit betty_loo Conexión con bases de datos 1 07-11-2007 22:51:55
Referencia circular Enan0 Varios 3 31-10-2006 22:56:26
referencia circular melon OOP 1 16-04-2006 02:13:00
variables por referencia shaktale Varios 2 11-06-2003 12:24:59


La franja horaria es GMT +2. Ahora son las 08:52:48.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi