![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() ![]() |
![]() |
RazrFalcon |
![]()
Сообщение
#11
|
![]() Zombie Mod ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 1654 Регистрация: 24.5.2010 Из: Харьков Пользователь №: 1752 Спасибо сказали: 64 раз(а) Репутация: ![]() ![]() ![]() |
Все ясно, спасибо.
|
|
|
ssoft |
![]()
Сообщение
#12
|
![]() Участник ![]() ![]() Группа: Участник Сообщений: 130 Регистрация: 17.2.2010 Из: Москва Пользователь №: 1470 Спасибо сказали: 30 раз(а) Репутация: ![]() ![]() ![]() |
Если хочется передавать собственную структуру, то, однозначно, лучше.
Особенно, если планируется это использовать в сигнал-слот взаимодействии.
Связать signal(const MyClass &myClass) можно с slot(const MyClass &myClass) или с slot(MyClass myClass) любым способом, а вот signal(MyClass &myClass) только с slot(MyClass &myClass) и, по моему, только Qt::DirectConnection. Если передавать через "голый" указатель, то необходимо следить за корректным удалением данных. Если хочется все-таки использовать указатель, тогда уж "умный", например, QSharedPointer. Передача структуры через "умный" указатель м.б. полезна при многопоточном программировании. Цитата В первом случае через указатель, во втором по ссылке. Хватит и ссылки, и даже без "const". Ссылка без "const", если данные не изменяются внутри вызываемого метода, мягко сказать не культурно или небрежно. Нужно также учесть, что в Qt обращение к не константным методам контейнеров, и всем классам Qt, использующим внутри QSharedData, могут быть связаны с полным копированием внутренних данных. |
|
|
![]() ![]() ![]() |
![]() |
|
Текстовая версия | Сейчас: 16.5.2025, 9:50 |