<div dir="ltr">¿Por qué no simplemente la metes dentro de la clase? <div>si la vas a utilizar dentro de la clase tal vez son parte de los atributos</div><div><br></div><div>también la puedes pasar como parámetros a la clase...</div><div><br></div><div>Por último puedes hacer un archivo de cabecera que contenga las variables e incluirlo en la definición de clase y el main</div><div><br></div><div><br></div><div>no se es lo que se me ocurre</div></div><div class="gmail_extra"><br><div class="gmail_quote">El 24 de abril de 2016, 15:02, marcelinux <span dir="ltr"><<a href="mailto:marcelinator@gmail.com" target="_blank">marcelinator@gmail.com</a>></span> escribió:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hola.<br>
La idea es tener una clase con miembros accesibles en cualquier archivo de la aplicación.<br>
<br>
Imaginemos que tengo una aplicación en la que necesitaré unas variables globales.<br>
Cuando digo globales, no me refiero al mismo archivo, sino a todos los archivos de la aplicación.<br>
Por ejemplo: En el archivo main.cpp declaro unas variables globales.<br>
En otro archivo donde se define una clase, quiero usar aquellas globales.<br>
Para ello, declararía las globales con extern.<br>
Lo haría más o menos así:<br>
<br>
Archivo main.cpp<br>
// Usar variables en otro archivo<br>
#include <iostream><br>
#include <string><br>
#include "clase.h"<br>
<br>
// Definir las variables globales<br>
int global1;<br>
float global2;<br>
std::string global3;<br>
<br>
int main()<br>
{<br>
    std::cout << "Asignar valores a las variables globales." << std::endl;<br>
    global1 = 123;<br>
    global2 = 123.45;<br>
    global3 = "cadena global";<br>
    std::cout << "global1 = " << global1 << std::endl;<br>
    std::cout << "global2 = " << global2 << std::endl;<br>
    std::cout << "global3 = " << global3 << std::endl;<br>
<br>
    // Accedemos a la clase donde operaremos con las variables globales<br>
    Clase miClase;<br>
    miClase.mostrar();<br>
<br>
    return 0;<br>
}<br>
<br>
Archivo clase.h<br>
#ifndef CLASE_H<br>
#define CLASE_H<br>
// Clase.<br>
// Mostrará las variables globales externas<br>
class Clase<br>
{<br>
    public:<br>
        void mostrar();<br>
};<br>
#endif // CLASE_H<br>
<br>
Archivo clase.cpp<br>
// Definición de Clase<br>
#include <iostream><br>
#include <string><br>
#include "clase.h"<br>
<br>
extern int global1;<br>
extern float global2;<br>
extern std::string global3;<br>
<br>
void Clase::mostrar()<br>
{<br>
    std::cout << "Valor de global1 desde la clase: " << global1 << std::endl;<br>
    std::cout << "Valor de global2 desde la clase: " << global2 << std::endl;<br>
    std::cout << "Valor de global3 desde la clase: " << global3 << std::endl;<br>
    return;<br>
}<br>
<br>
Y la pregunta es:<br>
¿Cómo podría "agrupar" esas variables en una "struct" o "class"?<br>
Si hago algo como extern class varGlobales;<br>
el compilador me devuelve un error: a storage class can only be specified for objects and functions<br>
<br>
Mi compilador es g++ (Debian 5.3.1-14) 5.3.1 20160409<br>
<br>
Muchas gracias.<br>
_______________________________________________<br>
Lista de correo Cconclase <a href="mailto:Cconclase@listas.conclase.net">Cconclase@listas.conclase.net</a><br>
<a href="http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net" rel="noreferrer" target="_blank">http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net</a><br>
Bajas: <a href="http://listas.conclase.net/index.php?gid=2&mnu=FAQ" rel="noreferrer" target="_blank">http://listas.conclase.net/index.php?gid=2&mnu=FAQ</a><br>
</blockquote></div><br></div>