Russian Qt Forum
Март 29, 2024, 07:33 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: неглобальные глобальные переменные  (Прочитано 4087 раз)
qlewer
Новичок

Offline Offline

Сообщений: 41


Просмотр профиля
« : Май 19, 2020, 16:55 »

создал новый класс. создал 2 объекта этого класса. у каждого объекта должна быть переменная, к которой можно обращаться из разных функций. обычно я просто объявлял переменную в самом вверху, она становилась глобальной. но теперь второй объект класса использует эту же переменную и перезаписывает её. подскажите, как использовать глобальную переменную, разную для каждого объекта одного класса?
Записан
Авварон
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3257


Просмотр профиля
« Ответ #1 : Май 19, 2020, 17:07 »

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

Выглядит как будто вам нужен обычный член класса.
Записан
qlewer
Новичок

Offline Offline

Сообщений: 41


Просмотр профиля
« Ответ #2 : Май 19, 2020, 17:17 »

я могу создать в каждом объекте lineedit и в нём хранить данные, но это не очень красиво. как правильно?
Записан
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


Жаждущий знаний


Просмотр профиля WWW
« Ответ #3 : Май 19, 2020, 17:44 »

Опиши что вообще нужно? Какая задача стоит?
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
qlewer
Новичок

Offline Offline

Сообщений: 41


Просмотр профиля
« Ответ #4 : Май 19, 2020, 18:41 »

на форме несколько объектов одного класса. глобальная переменная в классе хранит информацию, необходимую для работы каждого объекта. но. эта переменная общая для всех, а должна быть для каждого объекта своя. я пробовал хранить данные в lineedit или в свойствах lineedit. это работает, но логически неправильно, что вместо прямого обращения к переменной я сначала ищу в классе все текстовые поля, потом ищу нужное поле, потом смотрю свойства, чтобы записать\получить значение
Записан
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


Жаждущий знаний


Просмотр профиля WWW
« Ответ #5 : Май 19, 2020, 19:27 »

А что за класс? Почему не сделать эту переменную членом класса?
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
qlewer
Новичок

Offline Offline

Сообщений: 41


Просмотр профиля
« Ответ #6 : Май 19, 2020, 19:47 »

как? можешь привести пример?
Записан
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


Жаждущий знаний


Просмотр профиля WWW
« Ответ #7 : Май 19, 2020, 19:48 »

Код
C++ (Qt)
class A {
private:
 int thisIsAMemberOfClassA_;
};
 
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
qlewer
Новичок

Offline Offline

Сообщений: 41


Просмотр профиля
« Ответ #8 : Май 19, 2020, 20:11 »

всегда думал, что объявление в private .h файла то же самое, что глобальное объявление в начале .cpp файла, оказывается, нет. спасибо за прозрение
Записан
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


Жаждущий знаний


Просмотр профиля WWW
« Ответ #9 : Май 19, 2020, 20:26 »

Хехе. Это совершенно не одно и то же. Почитай что-нибудь про с++
« Последнее редактирование: Май 22, 2020, 07:18 от Пантер » Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
tamplier
Новичок

Offline Offline

Сообщений: 40


Просмотр профиля
Q
« Ответ #10 : Май 22, 2020, 04:44 »

всегда думал, что объявление в private .h файла то же самое, что глобальное объявление в начале .cpp файла, оказывается, нет. спасибо за прозрение

Хорошо бы сначала изучить основы ООП C++, а потом начинать программировать в Qt, т.к. там все завязано на классах и объектах. Искренний совет...
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.081 секунд. Запросов: 22.