Ver Mensaje Individual
  #4 (permalink)  
Antiguo 22/03/2013, 00:33
reethok
 
Fecha de Ingreso: abril-2011
Mensajes: 224
Antigüedad: 13 años
Puntos: 8
Respuesta: Acceder a variable extern desde otro archivo

Cita:
Iniciado por cesar_casla Ver Mensaje
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
Hice esto y me da el siguiente error al compilar con g++ -c item.cpp:

Código:
item.cpp:3:12: error: ‘global_id’ does not name a type
¿A qué se debe esto?

Saludos.