постоянный и глобальный
Этот код выдаст ошибку в C ++
// Foo.cpp
const int Foo = 99;
// Main.cpp
extern const int Foo;
int main()
{
cout << Foo << endl;
return 0;
}
Многие объясняют, что глобальное const имеет внутреннюю область действия и является статическим по умолчанию.
Решение этой проблемы:
//Foo.h
extern const int Foo;
// Foo.cpp
#include "Foo.h"
const int Foo = 99;
// Main.cpp
#include "Foo.h"
int main()
{
cout << Foo << endl;
}
Раньше я думал, что extern используется, чтобы сообщать компилятору, что память для идентификатора уже выделена где-то в других файлах.
Применяя ту же логику к приведенному выше коду, кто-нибудь может объяснить, что здесь происходит, или extern имеет другое значение в c ++ ??
введите описание ссылки здесь
Также рассмотрите эту страницу, это портит мне всю интуицию ..