Можно создать дубликат:
const and globalехЬегп странное поведение
Этот код будет производить ошибку в 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;
}
Я привык думать, что ехЬегп используется, чтобы сообщить компилятору, что память для indentifer уже выделено где-то в других файлах.
Применение такой же логики на вышеуказанном коде может кто-нибудь объяснить, что здесь происходит, или extern имеет другое значение в C++ ??
enter link description here
Также рассмотреть эту страницу это портит мои все интуитивные ..
Разве вы не задавали один и тот же вопрос около 2 часов назад? Вы читали ответы там? Если вы все еще сомневались в вопросе Q, который вы задали ранее, вы должны добавить свои сомнения в качестве комментариев к ответам, а не задавать новый вопрос. –
@als Я думаю, что для устранения сомнений других лучше всего делать в SO. –
Ну, не задавая один и тот же вопрос снова и снова, Если вы не понимаете ответа, задайте сомнения в разделе комментариев в ответе, а не начинайте другой вопрос. Пожалуйста, прочитайте FAQ ЧАСТОТЫ. –