Ver Mensaje Individual
  #3 (permalink)  
Antiguo 21/03/2013, 17:15
cesar_casla
 
Fecha de Ingreso: diciembre-2011
Ubicación: CABA
Mensajes: 433
Antigüedad: 12 años, 4 meses
Puntos: 94
Respuesta: Acceder a variable extern desde otro archivo

Hola! el modificador extern se utiliza cuando se quiere acceder a una variable que fue creado desde otro archivo, pero no cuando se crea la variable. Por lo tanto en utility.h no debias haber usado "extern"
La combinacion "extern static" creo q no es valida(y si lo fuese no tiene mucho sentido). Si solo hubieras usado static para crear la variable global_id, lo que harias es limitar el alcance de dicha variable, haciendola invisible a otros archivos(lo cual no es tu objetivo)...


Resumiendo:
utility.h
Código C:
Ver original
  1. unsigned int global_id = 0; /* variable global */

item.cpp
Código C:
Ver original
  1. #include "item.h"
  2.     #include "utility.h"
  3.      extern global_id;
  4.     id_t getUniversalId()
  5.     {
  6.         return global_id++;
  7.     }
  8.      
  9.     Item::Item()
  10.     {
  11.         // Genera el id Correcto
  12.         id = getUniversalId();
  13.      
  14.         // Necesita nombrarse el item
  15.         name = "UNDEFINED NAME";
  16.      
  17.         // Establece el precio del producto en 0.00
  18.         price = 0;
  19.     }

Saludos