crossplatform.ru

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

2 страниц V   1 2 >  
Ответить в данную темуНачать новую тему
> как вернуть QMap из функции?, Создавать указатель или напрямую?
myr
  опции профиля:
сообщение 4.9.2009, 16:03
Сообщение #1


Студент
*

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

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




Репутация:   0  


Подскажите, пож-та.
Если создавать указатель то как обращаться к данным?
Как выделчть память?

Спасибо.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
kwisp
  опции профиля:
сообщение 4.9.2009, 16:07
Сообщение #2


астарожна ынтжинэр
*****

Группа: Участник
Сообщений: 1404
Регистрация: 26.11.2008
Из: ТаганрогРодинаЧехова
Пользователь №: 435

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




Репутация:   23  


myr,
а что делает функция?
получает ли она QMap и наполняет его потом?
сама создает и наполняет?
можешь код показать?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 4.9.2009, 16:39
Сообщение #3


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

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

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




Репутация:   94  


Я бы поступил так:
с помощью Асистента (например, используя полнотекстовый поиск) посмотрел какие функции в Qt возвращают QMap (или ссылку или указатель на него), посмотрел бы исходники таких функций. На основе увиденного сделал бы как это сделано у тролей.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
kwisp
  опции профиля:
сообщение 4.9.2009, 17:15
Сообщение #4


астарожна ынтжинэр
*****

Группа: Участник
Сообщений: 1404
Регистрация: 26.11.2008
Из: ТаганрогРодинаЧехова
Пользователь №: 435

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




Репутация:   23  


не ясна задача. для чего это делается.

я бы включил необходимый мап в класс. и возвращал бы указатель или ссылку на него через константную функцию для чтения и через не константную для записи(если она вообще нужна).
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Гость_Гость_*
сообщение 4.9.2009, 20:39
Сообщение #5





Гости








    


Цитата(kwisp @ 4.9.2009, 17:15) *
я бы включил необходимый мап в класс. и возвращал бы указатель или ссылку на него через константную функцию для чтения и через не константную для записи(если она вообще нужна).

если возвращается один и тотже локальный то можно не парится с производительностью, переменная будет сразу на месте возврата, называется return value optimization.
  QMap<>  M1,M1;
bool xz;
.........
return xz?M1:M2;
здесь например RVO невозможно
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
kwisp
  опции профиля:
сообщение 4.9.2009, 22:43
Сообщение #6


астарожна ынтжинэр
*****

Группа: Участник
Сообщений: 1404
Регистрация: 26.11.2008
Из: ТаганрогРодинаЧехова
Пользователь №: 435

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




Репутация:   23  


Гость_Гость_*
не понятно о чем вы.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
myr
  опции профиля:
сообщение 7.9.2009, 9:03
Сообщение #7


Студент
*

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

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




Репутация:   0  


QMap classDialog::func1();

QMap func1(){
QMap map;
// расчеты, используя данные диалогового окна.
return map;
}
В модальном дилоговом окне заполняеться QMap. Его надо вернуть в основное окно программы.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
niXman
  опции профиля:
сообщение 7.9.2009, 10:45
Сообщение #8


Участник
**

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

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




Репутация:   0  


О чем вообще вы говорите!
Все объекты в Qt Implicit Sharing
http://doc.trolltech.com/4.5/shared.html


Поправка: Все объекты-контейнеры.

Сообщение отредактировал niXman - 7.9.2009, 10:36
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
myr
  опции профиля:
сообщение 7.9.2009, 10:58
Сообщение #9


Студент
*

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

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




Репутация:   0  


Цитата(niXman @ 7.9.2009, 11:45) *
О чем вообще вы говорите!
Все объекты в Qt Implicit Sharing
http://doc.trolltech.com/4.5/shared.html


Поправка: Все объекты-контейнеры.



Значит можно :rolleyes: и возврвщать из функции , умный QT все сам сделает.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
kwisp
  опции профиля:
сообщение 7.9.2009, 11:13
Сообщение #10


астарожна ынтжинэр
*****

Группа: Участник
Сообщений: 1404
Регистрация: 26.11.2008
Из: ТаганрогРодинаЧехова
Пользователь №: 435

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




Репутация:   23  


Цитата(myr @ 7.9.2009, 11:58) *
Значит можно :rolleyes: и возврвщать из функции , умный QT все сам сделает.

да это просто песня!
П.С.
думать не надо, все сделают добрые фины :)

одно дело когда ты прохавал как всё работает ( http://doc.trolltech.com/4.5/shared.html ) до этого изучив как работать без этого, оценил достоинства и недостатки и делаешь выбор, чтоб потом не было неприятной неожидонностью сигментэйшн фаулт к примеру на чисто с++ проекте без использования qt.

П.П.С. я не против implicit shared, я за грамотное пользование инструментами с++ и Qt.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

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


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




RSS Текстовая версия Сейчас: 26.12.2024, 17:13