Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   C++ Builder (https://www.clubdelphi.com/foros/forumdisplay.php?f=13)
-   -   Variables Globales o Propiedades de form? (https://www.clubdelphi.com/foros/showthread.php?t=81477)

Novatin 17-11-2012 19:38:21

Variables Globales o Propiedades de form?
 
Hola a todos...

Trato de mejorar la velocidad mi código en builder c++ puesto que tarda bastante más que lo programado en visual basic :eek: ... así que voy optimizando todo de a poco... y me surgen algunas dudas respecto a algunas variables, procedimientos y estructuras que uso... y mi duda va en este sentido...

¿Es mejor usar variables, procedimientos y estructuras como parte de las propiedades del Form ó da igual que declararlas fuera del mismo?

Para que se me entienda mejor, en la *.hpp tengo:

Código:

struct Vars **cords1;
struct Vars
{
    char Codigo[10];
 
    int absX, absY, absZ;
    short int relX, relY, relZ;

};

class TForm1 : public TForm
{
__published:        // IDE-managed Components
private:        // User declarations
public:                // User declarations
    __fastcall TForm1(TComponent* Owner);
    struct Vars **cords2;
};

Entonces, entre cords1 y cords2 que me convendría más, hacia donde debería intentar agrupar todas las variables, structs y procedimientos?

Bueno, ambas estructuras me funcionan correctamente; pero la verdad no tendo idea en donde agruparlas mejor para que se genere un código más rápido...

un saludo.

ecfisa 17-11-2012 23:13:39

Hola.

El uso de variables globales es totalmente desaconsejable y sólo en muy, pero muy contados casos reporta algún beneficio.

El donde las declares, dependerá del alcance que quieras darle. Si los que utilizan la clase o structura necesitarán tener acceso a ellas, las declararás dentro de un especificador de acceso publico y si sólo hara uso de ellas la propia clase o estructura conviene declararla dentro de un especificador de acceso privado. Si deseas ampliar sobre tipos de miembros, revisa este enlace

class y struct son equivalentes, las diferencias es que en la clase los miembros son por defecto privados, en la estructura lo son públicos. También por lo general, los argumentos tipo class se pasan por referencia y los tipo struct por valor.

Saludos.

Novatin 23-11-2012 01:48:24

1 Archivos Adjunto(s)
Saludos

Toda la razon ecfisa.. Estuve haciendo comparaciones entre la creacion de dos vectores dinámicos: uno declarado globalmente y otro declarado como propiedad de Form... y resulta que se crea más rápido el vector declarado como propiedad de form!!! ;) . Para que la comparación sea lo mas justa posible use una clase que encontré en la red que esta basada en QueryPerformanceCounter que -dicho sea de paso- es muy precisa... acá les dejo el código que usé para la comparación... (por si alguien lo necesita...)

un saludo.

AzidRain 23-11-2012 03:34:27

VB Te permite hacer cualquier clase de cosas sin que te enteres si es una buena práctica o mala. Una variable global es una que necesitas, requieres, utilizas, en muchas partes de tu aplicación. Si la variable en cuestión, solo la vas a ocupar en el form no tiene caso que sigan existiendo aún y cuando el form ya "murió".

En VB como ya dije, es muy fácil ir creando variables a lo loco aunque no las vayas a utilizar mas que en un proceso y todo se lo deján al famoso "recolector de basura", aunque es muy fácil de usar me parece que no es una práctica adecuada, por eso creo que tanto Delphi como C y todas sus variantes son lo mas adecuado ya que deja poco o nada a la "imaginación" de los desarrolladores del compilador e IDE.


La franja horaria es GMT +2. Ahora son las 09:13:38.

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