crossplatform.ru

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

2 страниц V  < 1 2  
Ответить в данную темуНачать новую тему
> вопрос по сигналам и слотам
BRE
  опции профиля:
сообщение 3.9.2009, 11:11
Сообщение #11


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

Группа: Участник
Сообщений: 1112
Регистрация: 6.3.2009
Из: Ростов-на-Дону
Пользователь №: 591

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




Репутация:   44  


Цитата(reich @ 3.9.2009, 12:01) *
BRE, я привык так делать, потому, что есть иногда другие нужды в использовании QCoreApplication

Интересно, а какие нужды позволяет сделать твой метод передачи по сравнению с ...
QApplication *app = QCoreApplication::instance();
app->....

или просто

qApp->...


Серьезно, не пойму...
Какой смысл передавать и хранить указатель, который можно получить в любом месте?
Причем нужно помнить, что нужно вызвать setInstance().
:blink:

Сообщение отредактировал BRE - 3.9.2009, 11:17
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
reich
  опции профиля:
сообщение 3.9.2009, 11:14
Сообщение #12


Студент
*

Группа: Новичок
Сообщений: 10
Регистрация: 31.7.2009
Пользователь №: 966

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




Репутация:   0  


Цитата(BRE @ 3.9.2009, 11:11) *
Цитата(reich @ 3.9.2009, 12:01) *
BRE, я привык так делать, потому, что есть иногда другие нужды в использовании QCoreApplication

Интересно, а какие нужды позволяет сделать твой метод передачи по сравнению с ...
QApplication *app = QCoreApplication::instance();
app->....

или просто

qApp->...


Серьезно, не пойму...


Пердоставленный выше пример никаких. Было бы короче записать твой вариант. Но я же говорю, что привык писать по другому.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
BRE
  опции профиля:
сообщение 3.9.2009, 11:20
Сообщение #13


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

Группа: Участник
Сообщений: 1112
Регистрация: 6.3.2009
Из: Ростов-на-Дону
Пользователь №: 591

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




Репутация:   44  


Цитата(reich @ 3.9.2009, 12:14) *
Пердоставленный выше пример никаких. Было бы короче записать твой вариант. Но я же говорю, что привык писать по другому.

Любой другой пример....
Для чего может понадобиться сохранять указатель на singleton?
Мы не ищем легких путей? Потенциально тонкий момент, нужно не забывать вызывать setInstance().
Зачем?

Я не прикалываюсь, действительно не понимаю... ;)

Сообщение отредактировал BRE - 3.9.2009, 11:21
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 3.9.2009, 14:46
Сообщение #14


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9656
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

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




Репутация:   94  


Цитата(BRE @ 3.9.2009, 15:20) *
Для чего может понадобиться сохранять указатель на singleton?
эта особенность просто не учтена.
И в Qt поменьшей мере два подобных класса:
QSqlDatabase
QCoreApplication
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
BRE
  опции профиля:
сообщение 3.9.2009, 15:10
Сообщение #15


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

Группа: Участник
Сообщений: 1112
Регистрация: 6.3.2009
Из: Ростов-на-Дону
Пользователь №: 591

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




Репутация:   44  


Цитата(Litkevich Yuriy @ 3.9.2009, 15:46) *
эта особенность просто не учтена.

Ты имеешь ввиду - не учтена reich?

Я почему поднял эту тему. По мне, так такой подход в использовании singleton'ов чреват ошибками. Легко обнаруживаемыми и не очень.
Singleton может вовсе не гарантировать, что указатель на объект который вернул метод instance, в дальнейшем будет валиден.
Obj *obj1 = Object::instance();
// Что-то делаем, например вызываем какой нибудь статический Object::reload().
Obj *obj2 = Object::instance();

// Вот здесь obj1 может быть не равен obj2

Поэтому, сохраняя указатель на такой объект, а в дальнейшем его использование чревато тем, что указатель будет указывать на убитый или не валидный объект.
В случае с QCoreApplication это как раз и не вызовет особых проблем, но практика по моему опасна.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 3.9.2009, 16:00
Сообщение #16


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9656
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

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




Репутация:   94  


Цитата(BRE @ 3.9.2009, 19:10) *
Ты имеешь ввиду - не учтена reich?
угу
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

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


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




RSS Текстовая версия Сейчас: 28.5.2020, 2:04