Constantes global em C++

Constantes global C++ têm vinculação estática.Isso é diferente de C.Se você tentar usar um global constante em C++ em vários arquivos obterá um erro externo não resolvido.O compilador otimiza constantes global, não deixando nenhum espaço reservado para a variável.

Uma maneira para resolver esse erro é incluir inicializações const em um arquivo de cabeçalho e incluir esse cabeçalho nos arquivos CPP quando necessário, sistema autônomo se fosse o protótipo de função.Outra possibilidade é tornar a variável não constante e use uma referência constante ao avaliar a ele.

O exemplo a seguir gera C2019:

// global_constants.cpp
// LNK2019 expected
void test(void);
const int lnktest1 = 0;

int main() {
   test();
}

E, em seguida,

// global_constants_2.cpp
// compile with: global_constants.cpp
extern int lnktest1;

void test() {
  int i = lnktest1;   // LNK2019
}

Consulte também

Referência

Vinculador ferramentas erro LNK2019