передача QString функции собственному классу |
Здравствуйте, гость ( Вход | Регистрация )
передача QString функции собственному классу |
danya |
10.11.2010, 15:28
Сообщение
#11
|
Студент Группа: Новичок Сообщений: 10 Регистрация: 30.10.2010 Пользователь №: 2164 Спасибо сказали: 0 раз(а) Репутация: 0 |
|
|
|
kwisp |
10.11.2010, 15:58
Сообщение
#12
|
астарожна ынтжинэр Группа: Участник Сообщений: 1404 Регистрация: 26.11.2008 Из: ТаганрогРодинаЧехова Пользователь №: 435 Спасибо сказали: 113 раз(а) Репутация: 23 |
danya,
у тебя же есть член класса baza зачем локальную переменную в функции open_base тоже называешь baza при том она того же типа что и член класса! Это тебя путает. Так делать не рекомендуется. назови по другому. А если ты хочешь инициализировать член класса с именем baza то тебе надо написать не baza(file,QSettings::IniFormat); и не QSettings baza(file,QSettings::IniFormat); а baza = QSettings(file,QSettings::IniFormat); к моменту вызова open_base baza уже существует созданная конструктором по умолчанию. |
|
|
danya |
10.11.2010, 19:39
Сообщение
#13
|
Студент Группа: Новичок Сообщений: 10 Регистрация: 30.10.2010 Пользователь №: 2164 Спасибо сказали: 0 раз(а) Репутация: 0 |
danya, у тебя же есть член класса baza зачем локальную переменную в функции open_base тоже называешь baza при том она того же типа что и член класса! Это тебя путает. Так делать не рекомендуется. назови по другому. А если ты хочешь инициализировать член класса с именем baza то тебе надо написать не baza(file,QSettings::IniFormat); и не QSettings baza(file,QSettings::IniFormat); а baza = QSettings(file,QSettings::IniFormat); к моменту вызова open_base baza уже существует созданная конструктором по умолчанию. сделал) появилась следующая ошибка
в
|
|
|
Litkevich Yuriy |
10.11.2010, 20:13
Сообщение
#14
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
Всё верно, QSettings не имеет отрытого оператора присваивания и конструктора копирования.
Этот класс предназначен для создания локальной переменной, так всюду в примерах и применяется. |
|
|
kwisp |
11.11.2010, 11:32
Сообщение
#15
|
астарожна ынтжинэр Группа: Участник Сообщений: 1404 Регистрация: 26.11.2008 Из: ТаганрогРодинаЧехова Пользователь №: 435 Спасибо сказали: 113 раз(а) Репутация: 23 |
danya,
я просто исходники твои скачал. про то что оператор копирования закрыт это я проглядел в документации. получается тебе не нужны члены класса QSettings baza и еще какой то не помню уже т.к. исходники удалил |
|
|
danya |
11.11.2010, 13:45
Сообщение
#16
|
Студент Группа: Новичок Сообщений: 10 Регистрация: 30.10.2010 Пользователь №: 2164 Спасибо сказали: 0 раз(а) Репутация: 0 |
danya, я просто исходники твои скачал. про то что оператор копирования закрыт это я проглядел в документации. получается тебе не нужны члены класса QSettings baza и еще какой то не помню уже т.к. исходники удалил да я уже по другому сделал сделал общим переменную file вообщем сейчас всё работает спасибо всем |
|
|
Obey-Kun |
1.12.2010, 6:56
Сообщение
#17
|
Студент Группа: Участник Сообщений: 96 Регистрация: 24.3.2010 Пользователь №: 1556 Спасибо сказали: 3 раз(а) Репутация: 0 |
Не следует передавать QString через копию. Лучше — через константную ссылку: int base::open_base(const QString &file). Такой метод будет вызываться быстрее.
|
|
|
Алексей1153 |
1.12.2010, 7:45
Сообщение
#18
|
фрилансер Группа: Участник Сообщений: 2941 Регистрация: 19.6.2010 Из: Обливион Пользователь №: 1822 Спасибо сказали: 215 раз(а) Репутация: 34 |
Obey-Kun, иногда бывает так, что нет объекта, ссылку на который можно передать Тогда лучше иметь перегрузку с параметром по значению
|
|
|
Obey-Kun |
1.12.2010, 10:54
Сообщение
#19
|
Студент Группа: Участник Сообщений: 96 Регистрация: 24.3.2010 Пользователь №: 1556 Спасибо сказали: 3 раз(а) Репутация: 0 |
Obey-Kun, иногда бывает так, что нет объекта, ссылку на который можно передать Тогда лучше иметь перегрузку с параметром по значению Так перегрузку или параметр по умолчанию? Перегрузка:
Параметр по умолчанию:
Я бы второго избегал именно потому, что во всех случаях, когда используется не параметр по умолчанию, оно будет работать медленнее, чем могло бы. Сообщение отредактировал Obey-Kun - 1.12.2010, 10:55 |
|
|
Litkevich Yuriy |
1.12.2010, 11:22
Сообщение
#20
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
|
|
|
Текстовая версия | Сейчас: 4.12.2024, 16:31 |