Russian Qt Forum

Qt => Вопросы новичков => Тема начата: qlewer от Май 19, 2020, 16:55



Название: неглобальные глобальные переменные
Отправлено: qlewer от Май 19, 2020, 16:55
создал новый класс. создал 2 объекта этого класса. у каждого объекта должна быть переменная, к которой можно обращаться из разных функций. обычно я просто объявлял переменную в самом вверху, она становилась глобальной. но теперь второй объект класса использует эту же переменную и перезаписывает её. подскажите, как использовать глобальную переменную, разную для каждого объекта одного класса?


Название: Re: неглобальные глобальные переменные
Отправлено: Авварон от Май 19, 2020, 17:07
Не использовать глобальные переменные=) Вообще.

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


Название: Re: неглобальные глобальные переменные
Отправлено: qlewer от Май 19, 2020, 17:17
я могу создать в каждом объекте lineedit и в нём хранить данные, но это не очень красиво. как правильно?


Название: Re: неглобальные глобальные переменные
Отправлено: Пантер от Май 19, 2020, 17:44
Опиши что вообще нужно? Какая задача стоит?


Название: Re: неглобальные глобальные переменные
Отправлено: qlewer от Май 19, 2020, 18:41
на форме несколько объектов одного класса. глобальная переменная в классе хранит информацию, необходимую для работы каждого объекта. но. эта переменная общая для всех, а должна быть для каждого объекта своя. я пробовал хранить данные в lineedit или в свойствах lineedit. это работает, но логически неправильно, что вместо прямого обращения к переменной я сначала ищу в классе все текстовые поля, потом ищу нужное поле, потом смотрю свойства, чтобы записать\получить значение


Название: Re: неглобальные глобальные переменные
Отправлено: Пантер от Май 19, 2020, 19:27
А что за класс? Почему не сделать эту переменную членом класса?


Название: Re: неглобальные глобальные переменные
Отправлено: qlewer от Май 19, 2020, 19:47
как? можешь привести пример?


Название: Re: неглобальные глобальные переменные
Отправлено: Пантер от Май 19, 2020, 19:48
Код
C++ (Qt)
class A {
private:
 int thisIsAMemberOfClassA_;
};
 


Название: Re: неглобальные глобальные переменные
Отправлено: qlewer от Май 19, 2020, 20:11
всегда думал, что объявление в private .h файла то же самое, что глобальное объявление в начале .cpp файла, оказывается, нет. спасибо за прозрение


Название: Re: неглобальные глобальные переменные
Отправлено: Пантер от Май 19, 2020, 20:26
Хехе. Это совершенно не одно и то же. Почитай что-нибудь про с++


Название: Q
Отправлено: tamplier от Май 22, 2020, 04:44
всегда думал, что объявление в private .h файла то же самое, что глобальное объявление в начале .cpp файла, оказывается, нет. спасибо за прозрение

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