[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