Russian Qt Forum
Ноябрь 24, 2024, 14:56 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Возвращать в виде указателя или нет?  (Прочитано 2393 раз)
evgeniy
Гость
« : Декабрь 31, 2014, 17:04 »

Допустим, надо возвратить из функции переменную типа QStringList. Если сделать её не в виде указателя, то будут затрачиваться ресурсы на копирование во время возврата переменной из функции. Плюс к этому, если это значение присваивается атрибуту объекта, то опять будут затрачиваться ресурсы на копирование.
То есть, как правильнее и эффективнее:
Код:
class foo {
  QStringList* list;
  QStringList* getLlist();
}
или не мудрить:
Код:
class foo {
  QStringList list;
  QStringList getLlist();
}
Записан
Old
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4350



Просмотр профиля
« Ответ #1 : Декабрь 31, 2014, 17:50 »

Не мудрить. Улыбающийся
Тем более в данном случае, никаких накладнвх расходов не будет.
Записан
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #2 : Декабрь 31, 2014, 18:06 »

К сожалению, в Qt это сходит с рук (срабатывает имплисит шара). Все же если собрались возвращать "тот самый" list, то "типа грамотно" так
Код
C++ (Qt)
class foo {
public:
 QStringList & getLlist() { return list; }
 const QStringList & getLlist() const { return list; }
 
private:
 QStringList list;
};
Записан
Old
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4350



Просмотр профиля
« Ответ #3 : Декабрь 31, 2014, 18:10 »

Это "сходит с рук" не только в Qt. К радости. Улыбающийся
Записан
evgeniy
Гость
« Ответ #4 : Декабрь 31, 2014, 18:16 »

Спасибо!!!
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.087 секунд. Запросов: 22.