Russian Qt Forum
Ноябрь 24, 2024, 03:37
Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
Вам не пришло
письмо с кодом активации?
1 час
1 день
1 неделя
1 месяц
Навсегда
Войти
Начало
Форум
WIKI (Вики)
FAQ
Помощь
Поиск
Войти
Регистрация
Russian Qt Forum
>
Forum
>
Программирование
>
С/C++
>
Проблема с глобальной перемнной
Страниц: [
1
]
Вниз
« предыдущая тема
следующая тема »
Печать
Автор
Тема: Проблема с глобальной перемнной (Прочитано 3590 раз)
MuLLIKA
Гость
Проблема с глобальной перемнной
«
:
Октябрь 22, 2010, 02:12 »
Есть заголовочный файл в котором описанны, все структуры и множества. Туда я записал переменную int StrokIndexArrayCollids.
Этот заголовочный файл подключен ко всем классом проекта, после добавления в этот файл переменной int StrokIndexArrayCollids
компилятор выдает мне ошибку: multiple definition of `StrokIndexArrayCollids'
попробовал сделать
extern int StrokIndexArrayCollids;
пишет:
undefined reference to `StrokIndexArrayCollids'
во всех местах обращения любых классов
Зарание спасибо!
«
Последнее редактирование: Октябрь 22, 2010, 02:26 от MuLLIKA
»
Записан
Alex Custov
Джедай : наставник для всех
Offline
Сообщений: 2063
Re: Проблема с глобальной перемнной
«
Ответ #1 :
Октябрь 22, 2010, 04:04 »
Чтобы не иметь таких проблем, сперва нужно изучить язык, и только потом пользоваться тулкитами. Я уверен, что в твоём случае можно обойтись и без глобальных переменных. Покажи, что хочешь сделать.
Записан
SASA
Гость
Re: Проблема с глобальной перемнной
«
Ответ #2 :
Октябрь 22, 2010, 09:20 »
Прочитайте что-нибудь про то, как компилируются программы на C++.
Записан
merke
Гость
Re: Проблема с глобальной перемнной
«
Ответ #3 :
Октябрь 22, 2010, 10:12 »
Вот смотри, получается у тебя есть заголовочный файл в котором описана переменная StrokIndexArrayCollids теперь когда ты подключаешь этот заголовочный файл в какому либо классу инклудом, класс имеет возможность обращаться к данной переменной. И когда ты ещё один раз объявляешь эту переменную в твоем классе он тебе и выдает ошибку двойного декларирования одной и той же переменной - StrokIndexArrayCollids.
Решение: учить азы C++
Записан
gogi
Гость
Re: Проблема с глобальной перемнной
«
Ответ #4 :
Октябрь 22, 2010, 10:18 »
Цитата: MuLLIKA от Октябрь 22, 2010, 02:12
попробовал сделать
extern int StrokIndexArrayCollids;
пишет:
undefined reference to `StrokIndexArrayCollids'
во всех местах обращения любых классов
Сделай для заголовочного файла .cpp-модуль и объяви там наконец переменную:
int StrokIndexArrayCollids;
extern int StrokIndexArrayCollids; - это указание, что её можно использовать в других модулях. То есть это указание у тебя есть, а самой переменной нет. Отсюда и ошибка линковки.
Записан
MuLLIKA
Гость
Re: Проблема с глобальной перемнной
«
Ответ #5 :
Октябрь 22, 2010, 13:18 »
Цитировать
Вот смотри, получается у тебя есть заголовочный файл в котором описана переменная StrokIndexArrayCollids теперь когда ты подключаешь этот заголовочный файл в какому либо классу инклудом, класс имеет возможность обращаться к данной переменной. И когда ты ещё один раз объявляешь эту переменную в твоем классе он тебе и выдает ошибку двойного декларирования одной и той же переменной - StrokIndexArrayCollids.
#ifndef STRUCTHEADER_H
#define STRUCTHEADER_H
extern int StrokIndexArrayCollids;
#endif // STRUCTHEADER_H
ни в одном классе я его не объявляю (int StrokIndexArrayCollids), а лишь присваиваю ему значение StrokIndexArrayCollids = 0 по ходу программы.
все, что я делаю
Записан
MuLLIKA
Гость
Re: Проблема с глобальной перемнной
«
Ответ #6 :
Октябрь 22, 2010, 14:38 »
Всем огромное спасибо! решено!
На с++ ни когда не кодил, всю жизнь писал на чистом Си, таких нюансов не приходилось затрагивтаь
Записан
Alex_cs_gsp
Гость
Re: Проблема с глобальной перемнной
«
Ответ #7 :
Октябрь 23, 2010, 09:07 »
Цитата: MuLLIKA от Октябрь 22, 2010, 14:38
Всем огромное спасибо! решено!
На с++ ни когда не кодил, всю жизнь писал на чистом Си, таких нюансов не приходилось затрагивтаь
Вообще-то на чистом Си такие же самые нюансы.
Записан
Страниц: [
1
]
Вверх
Печать
« предыдущая тема
следующая тема »
Перейти в:
Пожалуйста, выберите назначение:
-----------------------------
Qt
-----------------------------
=> Вопросы новичков
=> Уроки и статьи
=> Установка, сборка, отладка, тестирование
=> Общие вопросы
=> Пользовательский интерфейс (GUI)
=> Qt Quick
=> Model-View (MV)
=> Базы данных
=> Работа с сетью
=> Многопоточное программирование, процессы
=> Мультимедиа
=> 2D и 3D графика
=> OpenGL
=> Печать
=> Интернационализация, локализация
=> QSS
=> XML
=> Qt Script, QtWebKit
=> ActiveX
=> Qt Embedded
=> Дополнительные компоненты
=> Кладовая готовых решений
=> Вклад сообщества в Qt
=> Qt-инструментарий
-----------------------------
Программирование
-----------------------------
=> Общий
=> С/C++
=> Python
=> Алгоритмы
=> Базы данных
=> Разработка игр
-----------------------------
Компиляторы и платформы
-----------------------------
=> Linux
=> Windows
=> Mac OS X
=> Компиляторы
===> Visual C++
-----------------------------
Разное
-----------------------------
=> Новости
===> Новости Qt сообщества
===> Новости IT сферы
=> Говорилка
=> Юмор
=> Объявления
Загружается...