[C con Clase] Tener una clase con miembros accesibles en cualquier archivo de la aplicación.
Davidson, Steven
srd4121 en njit.edu
Jue Abr 28 03:43:40 CEST 2016
Hola Marcelinux,
Al crear una clase, debes definirla en cada código fuente que vayas a
usarlo. Por esto, sugiero crear un fichero de cabecera; por ejemplo,
// globales.h
#include <string>
struct Globales
{
static int global1;
static float global2;
static std::string global3;
};
// main.cpp
#include <string>
#include "globales.h"
int Globales::global1 = 10;
float Globales::global2 = -3.4f;
std::string Globales::global3 = "cadena";
...
// clase.cpp
#include "clase.h"
#include "globales.h"
void Clase::mostrar()
{
std::cout << Globales::global1 << std::endl;
}
No hay que escribir 'extern'.
Espero que esto te ayude.
Steven
2016-04-27 16:51 GMT-04:00 marcelinux <marcelinator en gmail.com>:
> Con la clase de miembros static no es como lo imaginaba.
> No quiero que Clase tenga miembros static.
> Quiero una clase Globales con sus miembros accesibles desde Clase.
> Una cosa así:
>
> En main.cpp
> class Globales
> {
> public:
> static int global1;
> static float global2;
> static std::string global3;
> };
>
> En clase.h
> class Clase
> {
> public:
> void mostrar();
> };
>
> En clase.cpp
> extern int Globales::global1;
> void Clase::mostrar()
> {
> std::cout << Globales::global1 << std::endl;
> }
>
> No me compila. :-'(
>
>
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.conclase.net/pipermail/cconclase_listas.conclase.net/attachments/20160427/820b80dd/attachment.html>
Más información sobre la lista de distribución Cconclase