crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

nikita
  опции профиля:
сообщение 20.3.2013, 11:51
Сообщение #1


Студент
*

Группа: Участник
Сообщений: 34
Регистрация: 19.10.2012
Пользователь №: 3570

Спасибо сказали: 2 раз(а)




Репутация:   0  


Заранее прошу прощения за столь глупый вопрос) Есть код:
...
int x = 3;
...
void MyClass::writeFromFile(QString fileName)
{ ... }


Суть в том, что в методе writeFromFile из файла считывается 2 поля : 'x' и '5'. Можно ли как-то переменной с именем 'x' присвоить считанное значение(в данном случае 5). Если бы Х был полем класса MyClass, то можно было бы воспользоваться методом findChild(), а в этой ситуации я в тупике. Переменных должно быть много и писать процедуру разбора считанной строки с кучей IF-ов не хочется. Подскажите как быть.

Сообщение отредактировал nikita - 20.3.2013, 11:51
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
 
Начать новую тему
Ответов
Iron Bug
  опции профиля:
сообщение 20.3.2013, 15:53
Сообщение #2


Профессионал
*****

Группа: Модератор
Сообщений: 1611
Регистрация: 6.2.2009
Из: Yekaterinburg
Пользователь №: 533

Спасибо сказали: 219 раз(а)




Репутация:   12  


не очень понятно, в чём вопрос.
x - это глобальная переменная или что?
если глобальная, то кто мешает её напрямую юзать? а если не глобальная, то можно передавать указатель на неё как параметр или сделать её статическим членом класса, например. да куча вариантов, вообще говоря.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
nikita
  опции профиля:
сообщение 21.3.2013, 7:34
Сообщение #3


Студент
*

Группа: Участник
Сообщений: 34
Регистрация: 19.10.2012
Пользователь №: 3570

Спасибо сказали: 2 раз(а)




Репутация:   0  


Цитата(Iron Bug @ 20.3.2013, 16:53) *
не очень понятно, в чём вопрос.
x - это глобальная переменная или что?
если глобальная, то кто мешает её напрямую юзать? а если не глобальная, то можно передавать указатель на неё как параметр или сделать её статическим членом класса, например. да куча вариантов, вообще говоря.


X - глобальная переменная не имеющая никакого отношения к классу. Вопрос в том, как переменной с именем QString("x") присвоить значенине. Да, если сделать Х членом класса, то можно юзать метод findChild(), но этот вариант мне не подходит!
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Iron Bug
  опции профиля:
сообщение 21.3.2013, 16:18
Сообщение #4


Профессионал
*****

Группа: Модератор
Сообщений: 1611
Регистрация: 6.2.2009
Из: Yekaterinburg
Пользователь №: 533

Спасибо сказали: 219 раз(а)




Репутация:   12  


Цитата(nikita @ 21.3.2013, 10:34) *
Да, если сделать Х членом класса, то можно юзать метод findChild(), но этот вариант мне не подходит!

собственно, почему не подходит? вообще, глобальные переменные обычно никто не делает глобальными просто так, врассыпную. делают один класс глобальных переменных и объявляют их все статическими. правда, я не знаю, умеeт ли Qt работать с именами статических членов класса. в конце концов, если нужна именно глобальная переменная для совместимости с какими-нибудь чужеродными компиляторами, то её можно сделать глобальной, а в классе глобальных переменных объявить линк и инициализировать его адресом этой переменной.
а в чистом С++ такой встроенной возможности нет. либо делать мап, как уже сказали, либо какие-то другие самодельные списки с именами.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Сообщений в этой теме


Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0


RSS Рейтинг@Mail.ru Текстовая версия Сейчас: 12.6.2025, 15:12