Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Laix
1 / 1 / 0
Регистрация: 15.04.2013
Сообщений: 64
#1

extern - C++

25.11.2013, 18:18. Просмотров 994. Ответов 6
Метки нет (Все метки)

Собственно как правильно пользоваться такой штукой?
1. Где нужно использовать:
1) только в заголовочном файле
2) только в исходном файле с подключаемым заголовочным( то есть в 1) без extern )
3) в обоих файла?

2. можно ли переопределить переменную в исходном файле?(дурацкий вопрос, но все же)

3. имеются 5 глобальных переменных в файле myclasses.h. используются они в myclasses.cpp и в widget.cpp.
стрелкой показано "зависит от".
что делать если ругается на "myclasses.obj:-1: ошибка: LNK2005: *одна_из_переменных* уже определен в widget.obj" ?)
на все 5 переменных из myclasses.h.
Миниатюры
extern  
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.11.2013, 18:18     extern
Посмотрите здесь:

Extern в C/C++ - C++
Оговорка - собирал все под VS2015 и под него же с Clang'ом для убедительности. В первую очередь интересует актуальная для них информация,...

директива extern - C++
Никак н могу понять как решить проблму с директивой extern. Я подключил к проекту файл libext.h и попытался скомпилировать программу. И...

Extern template - C++
Не могу понять, в книге пишут: Примерно понимаю, при компиляции будет добавлен код определения шаблона в каждый файл где он...

( extern char ) переопределение; - C++
Здравствуйте. В file.cpp использую: char *SOUND_TRAPPED = { "zbm4/zombi_trapped.wav", // male ...

Использование extern с функциями - C++
Добрый вечер! Скажем я задекларировал в каком-то модуле функцию extern void foo() ;. Но не описал её. Могу ли я при подключении...

что такое extern? - C++
что будет если не написать extern,если можно с примерами

Ключевое слово extern - C++
Есть код в файле file1.cpp #include "stdafx.h" #include <iostream> #include <string> #include "file2.cpp" int main() { ...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
newbie666
Заблокирован
25.11.2013, 18:24     extern #2
Цитата Сообщение от Laix Посмотреть сообщение
только в исходном файле с подключаемым заголовочным
это верно
0x10
25.11.2013, 18:44
  #3

Не по теме:

Цитата Сообщение от Laix Посмотреть сообщение
имеются 5 глобальных переменных в файле myclasses.h.
...
что делать ...
Не использовать глобальные переменные.

Laix
1 / 1 / 0
Регистрация: 15.04.2013
Сообщений: 64
25.11.2013, 19:09  [ТС]     extern #4
Цитата Сообщение от 0x10 Посмотреть сообщение

Не по теме:


Не использовать глобальные переменные.

хм... а если их через мое пространство имен сделать, они ведь не будут считаться глобальными? потребуется ли писать extern в исполняемых файлах?
0x10
2459 / 1631 / 238
Регистрация: 24.11.2012
Сообщений: 4,009
25.11.2013, 19:13     extern #5
Цитата Сообщение от Laix Посмотреть сообщение
а если их через мое пространство имен сделать, они ведь не будут считаться глобальными?
Пространства имен - для разрешения конфликтов имен. Область видимости переменной все равно остается глобальной.
Избавиться от глобалок не так трудно. Зато проблем после этого будет значительно меньше.
Matan!
233 / 84 / 16
Регистрация: 31.05.2013
Сообщений: 828
Записей в блоге: 2
Завершенные тесты: 1
25.11.2013, 19:15     extern #6
Думаю,достаточно написать другой файл,подключить его и использовать extern,если не найдёт.Действительно,от глобальных переменных лучше отказаться...
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.11.2013, 19:23     extern
Еще ссылки по теме:

Проблема с extern-переменными - C++
Такие дела. У меня два файла, func.cpp и main.cpp //func.cpp double sum, count; double average(double num) { sum += num; ...

Некоректный вывод переменной extern - C++
Есть заголовочный файл в котором объявлена переменная extern, пытаюсь взаимодействовать с этой переменной через другие файлы компилятор...

Подключение файлов через extern - C++
пишу такую фигню //HH2.cpp #include "mouse.h" int main() { HWND hWnd = NULL;

Пример использования функции extern - C++
Доброго времени суток форумчане! Пытаюсь закрыть долг по программированию, но препод очень жесткий и просто так ставить ставить зачет мне...

Работа ключевого слова extern - C++
Здравствуйте. Скажите пожалуйста, почему так с extern нельзя поступать? #include <iostream> int main() { extern...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Laix
1 / 1 / 0
Регистрация: 15.04.2013
Сообщений: 64
25.11.2013, 19:23  [ТС]     extern #7
Цитата Сообщение от newbie666 Посмотреть сообщение
это верно
а почему так нельзя?
файл x.h:
extern int xxx; //объвляем

файл x.cpp:
int xxx; //определяем

в остальных файлах —

#include "x.h"
Yandex
Объявления
25.11.2013, 19:23     extern
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru