2 / 2 / 0
Регистрация: 25.03.2010
Сообщений: 145
1

Передача объектов в функции и методы

18.09.2012, 22:52. Показов 4117. Ответов 4
Метки нет (Все метки)

Как лучше передавать объекты в функции и методы и почему?
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
18.09.2012, 22:52
Ответы с готовыми решениями:

Передача объектов в методы по указателю
Здравствуйте. Тема звучит достаточно просто, но на самом деле я сформулировал её наверно...

Передача объектов функции. Два обращения к функции деструктора
В книге этот код должен 2 раза обращаться к функции деструктора, то есть результатом программы...

Передача объектов в функции
Добрый день. После C изучал C#, теперь перешел к плюсам. Столкнулся с непониманием. В каких...

Передача массива объектов функции
Выбивает о каком-то недопустимом внешнем символе, подскажите что не так. Вот цикл, который...

4
2055 / 1589 / 677
Регистрация: 27.07.2012
Сообщений: 4,763
18.09.2012, 23:01 2
Смотря что и зачем надо передать.
Если с объектом внутри функции необходимо производить некоторые действия, то объект лучше передать по ссылке.
Если требуется передача копии объекта, то его передают по значению (вызывается конструктор копирования).
Если вызов конструктора копирования нежелателен (например, по соображениям эффективности), но никаких "модификаций" объекта внутри функции не требуется, можно передать объект по константной ссылке.
Если речь идёт о полиморфных классах, то функция, скорее всего, должна принимать указатель на базовый класс, а в неё передаются адреса объектов производных классов.

В общем, много-много "если". Каждой конкретной ситауции - своё решение.
1
2 / 2 / 0
Регистрация: 25.03.2010
Сообщений: 145
18.09.2012, 23:04  [ТС] 3
короче говоря,зависит от ситуации. Спасибо
0
387 / 151 / 16
Регистрация: 12.05.2011
Сообщений: 450
18.09.2012, 23:05 4
Цитата Сообщение от John Prick Посмотреть сообщение
Если речь идёт о полиморфных классах, то функция, скорее всего, должна принимать указатель на базовый класс, а в неё передаются объекты производных классов.
константная ссылка здесь тоже вполне пригодна.

а передача указателя -- прежде всего для передачи массивов, так как в этом случае ссылкой никак не обойтись
0
В астрале
Эксперт С++
8044 / 4801 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
19.09.2012, 09:16 5
yekka, Не согласен насчет никак не обойтись.

http://liveworkspace.org/code/... fb49ff9e21

А при использовании смартов - вообще будем кидать просто массив смартов, без явного использования указателей. Ну или вектор.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
19.09.2012, 09:16
Помогаю со студенческими работами здесь

Разработать классы для описанных ниже объектов. Включить в класс методы set (…), get (…), show (…). Определить другие методы
Разработать классы для описанных ниже объектов. Включить в класс методы set (…), get (…), show (…)....

Передача указателей в методы по ссылке
Здравствуйте, хотел спросить, такой варианте адекватен? Или есть более адекватное решение... Просто...

Подумайте, какие свойства и методы должны быть у объектов класса Светофор
Добавьте в рассмотренную в параграфе модель светофоры (на дороге их может быть много). Подумайте,...

Как правильно вызвать методы, чтобы передать весь массив объектов
#include <iostream> using namespace std; class f { public: int a; f() { a = 0;


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru