Название: [РЕШЕНО]помогите с ошибками(game dev) Отправлено: Noize_programmer от Август 25, 2023, 11:21 проект:https://github.com/SpeechKingV/guess_the_number__with_graphics (https://github.com/SpeechKingV/guess_the_number__with_graphics)
в Ssettings_window.h я добавил следующий код(перед классом Ssettings_window): Код: class Global пример: Код: settings.operator[](4); Код: Global::settings.operator[](4); ошибки:
Название: Re: помогите с ошибками(game dev) Отправлено: sergek от Август 25, 2023, 16:04 Два раза на одни грабли... (http://www.prog.org.ru/index.php?topic=33465.msg247268#msg247268)
Вы объявление от определения отличаете? Статический член не принадлежит классу. Его надо еще определить: QVector<int> Global::settings; Название: Re: помогите с ошибками(game dev) Отправлено: kambala от Август 25, 2023, 16:14 Код: settings.operator[](4) Код: settings[4] Название: Re: помогите с ошибками(game dev) Отправлено: Noize_programmer от Август 28, 2023, 16:43 Код: settings.operator[](4) Код: settings[4] Название: Re: помогите с ошибками(game dev) Отправлено: Noize_programmer от Август 28, 2023, 16:55 Два раза на одни грабли... (http://www.prog.org.ru/index.php?topic=33465.msg247268#msg247268) извините за это,(это была попытка создать переменную доступную во всех классах)Вы объявление от определения отличаете? Статический член не принадлежит классу. Его надо еще определить: QVector<int> Global::settings; подскажите пожалуйста как создать переменную доступную во всех классах ??? ??? ??? Название: Re: помогите с ошибками(game dev) Отправлено: sergek от Август 28, 2023, 20:18 подскажите пожалуйста как создать переменную доступную во всех классах ??? ??? ??? Так ведь это зависит от задачи. Если это глобальное свойство всех ваших классов, то нужно создать базовый класс, в котором объявить эту переменную, как статический член. А все ваши классы наследуете от этого базового класса.Если это просто какая-то переменная, содержащая данные, используемые в объектах ваших классов, то - объявляете где-то просто глобальную переменную, а в модулях, в которых используете ее - extern ваша_переменная. Либо объявляете класс с статическим членом в открытой области. Используете в остальных классах так: Вашкласс::вашапеременная. Чтобы ограничить видимость этой переменной, можно извратиться - объявить статический член в приватной области. А все остальные классы, которые должны работать с ней, объявляете друзьями (friend class). Но, на мой взгляд, из того, что я перечислил, только первый способ правильный. Название: Re: помогите с ошибками(game dev) Отправлено: Noize_programmer от Август 31, 2023, 14:41 подскажите пожалуйста как создать переменную доступную во всех классах ??? ??? ??? Так ведь это зависит от задачи. Если это глобальное свойство всех ваших классов, то нужно создать базовый класс, в котором объявить эту переменную, как статический член. А все ваши классы наследуете от этого базового класса.Если это просто какая-то переменная, содержащая данные, используемые в объектах ваших классов, то - объявляете где-то просто глобальную переменную, а в модулях, в которых используете ее - extern ваша_переменная. Либо объявляете класс с статическим членом в открытой области. Используете в остальных классах так: Вашкласс::вашапеременная. Чтобы ограничить видимость этой переменной, можно извратиться - объявить статический член в приватной области. А все остальные классы, которые должны работать с ней, объявляете друзьями (friend class). Но, на мой взгляд, из того, что я перечислил, только первый способ правильный. спасибо за помощь, но я нащёл другое решение просто вместо масива использую QMap |