0 / 0 / 0
Регистрация: 11.12.2017
Сообщений: 9
|
|||||||||||
1 | |||||||||||
Ошибка множественного определения переменной27.10.2018, 20:19. Показов 1454. Ответов 8
Метки нет Все метки)
(
У меня при компиляции вылазит ошибка множественного определения переменной.
Вот код.
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
|
|
27.10.2018, 20:19 | |
Ответы с готовыми решениями:
8
Как побороть проблему множественного определения? Ошибка с оператором множественного выбора Ошибка определения переменной |
Модератор
![]() 12631 / 10128 / 6098
Регистрация: 18.12.2011
Сообщений: 27,159
|
|||||||||||
27.10.2018, 20:31 | 2 | ||||||||||
Вы этот include добавляете в несколько файлов проекта.
Т.е. в каждой единице трансляции появляются эти переменные. Надо так: Global.h:
Global.cpp:
1
|
Mental handicap
1245 / 623 / 171
Регистрация: 24.11.2015
Сообщений: 2,429
|
||||||
27.10.2018, 20:41 | 3 | |||||
zss,
а почему не без определения?
0
|
Модератор
![]() 12631 / 10128 / 6098
Регистрация: 18.12.2011
Сообщений: 27,159
|
|
27.10.2018, 21:01 | 4 |
НЕ понял вопроса.
Если мы хотим использовать переменные, объявленные в другой единице трансляции, то их нужно объявить как extern.
0
|
Mental handicap
1245 / 623 / 171
Регистрация: 24.11.2015
Сообщений: 2,429
|
||||||
27.10.2018, 21:11 | 5 | |||||
zss,
Global.h:
Чисто самому интересно?
0
|
Модератор
![]() 12631 / 10128 / 6098
Регистрация: 18.12.2011
Сообщений: 27,159
|
|
27.10.2018, 21:32 | 6 |
Так я написал в global.cpp.
Этот файл откомпилируется в отдельной единице трансляции и в нем будут созданы эти переменные. А в файле global.h лишь указывается, что эти переменные где-то существуют. Поэтому-то они и объявлены как extern.
0
|
Mental handicap
1245 / 623 / 171
Регистрация: 24.11.2015
Сообщений: 2,429
|
||||||
27.10.2018, 21:42 | 7 | |||||
zss, не, значит это я тупой, не могу объяснить
ок:
0
|
16490 / 8984 / 2204
Регистрация: 30.01.2014
Сообщений: 15,603
|
|
27.10.2018, 21:55 | 8 |
Для таких const`ов делать внешнее связывание скорее вредно, чем полезно. Так они станут неизменяемыми переменными, а могли бы остаться константами времени компиляции (компилятор мог бы их вообще не размещать в памяти). Ошибки множественного определения для const`ов не будет, т.к. по умолчанию они имеют внутреннее связывание.
2
|
Модератор
![]() 12631 / 10128 / 6098
Регистрация: 18.12.2011
Сообщений: 27,159
|
|
28.10.2018, 07:23 | 9 |
0
|
28.10.2018, 07:23 | |
Помогаю со студенческими работами здесь
9
Ошибка определения логической переменной в управляемом коде Объявление переменной без определения Найти область определения функции одной переменной
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |