[C con Clase] Tener una clase con miembros accesibles en cualquier archivo de la aplicación.

Yolmer Rosales yolmer.rosales en gmail.com
Lun Abr 25 03:20:01 CEST 2016


¿Por qué no simplemente la metes dentro de la clase?
si la vas a utilizar dentro de la clase tal vez son parte de los atributos

también la puedes pasar como parámetros a la clase...

Por último puedes hacer un archivo de cabecera que contenga las variables e
incluirlo en la definición de clase y el main


no se es lo que se me ocurre

El 24 de abril de 2016, 15:02, marcelinux <marcelinator en gmail.com> escribió:

> Hola.
> La idea es tener una clase con miembros accesibles en cualquier archivo de
> la aplicación.
>
> Imaginemos que tengo una aplicación en la que necesitaré unas variables
> globales.
> Cuando digo globales, no me refiero al mismo archivo, sino a todos los
> archivos de la aplicación.
> Por ejemplo: En el archivo main.cpp declaro unas variables globales.
> En otro archivo donde se define una clase, quiero usar aquellas globales.
> Para ello, declararía las globales con extern.
> Lo haría más o menos así:
>
> Archivo main.cpp
> // Usar variables en otro archivo
> #include <iostream>
> #include <string>
> #include "clase.h"
>
> // Definir las variables globales
> int global1;
> float global2;
> std::string global3;
>
> int main()
> {
>     std::cout << "Asignar valores a las variables globales." << std::endl;
>     global1 = 123;
>     global2 = 123.45;
>     global3 = "cadena global";
>     std::cout << "global1 = " << global1 << std::endl;
>     std::cout << "global2 = " << global2 << std::endl;
>     std::cout << "global3 = " << global3 << std::endl;
>
>     // Accedemos a la clase donde operaremos con las variables globales
>     Clase miClase;
>     miClase.mostrar();
>
>     return 0;
> }
>
> Archivo clase.h
> #ifndef CLASE_H
> #define CLASE_H
> // Clase.
> // Mostrará las variables globales externas
> class Clase
> {
>     public:
>         void mostrar();
> };
> #endif // CLASE_H
>
> Archivo clase.cpp
> // Definición de Clase
> #include <iostream>
> #include <string>
> #include "clase.h"
>
> extern int global1;
> extern float global2;
> extern std::string global3;
>
> void Clase::mostrar()
> {
>     std::cout << "Valor de global1 desde la clase: " << global1 <<
> std::endl;
>     std::cout << "Valor de global2 desde la clase: " << global2 <<
> std::endl;
>     std::cout << "Valor de global3 desde la clase: " << global3 <<
> std::endl;
>     return;
> }
>
> Y la pregunta es:
> ¿Cómo podría "agrupar" esas variables en una "struct" o "class"?
> Si hago algo como extern class varGlobales;
> el compilador me devuelve un error: a storage class can only be specified
> for objects and functions
>
> Mi compilador es g++ (Debian 5.3.1-14) 5.3.1 20160409
>
> Muchas gracias.
> _______________________________________________
> Lista de correo Cconclase Cconclase en listas.conclase.net
> http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net
> Bajas: http://listas.conclase.net/index.php?gid=2&mnu=FAQ
>
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.conclase.net/pipermail/cconclase_listas.conclase.net/attachments/20160424/3a8a546e/attachment.html>


Más información sobre la lista de distribución Cconclase