Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/9: Рейтинг темы: голосов - 9, средняя оценка - 4.67
9 / 9 / 8
Регистрация: 24.10.2013
Сообщений: 215
1

Передача объектов в функцию: особенности

23.11.2015, 17:27. Показов 1804. Ответов 5
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте! Пишу программу с применением классов, и возник один вопрос, на который то ли гугл не имеет ответа, то ли я плохо искал, но, в общем, поиск оказался для меня безрезультатным.

Если у меня есть объект класса MyClass class;
Чем отличается передача его в функцию func разными способами? Например:
C++ (Qt)
1
2
3
4
func(MyClass class);
func(MyClass *class);
func(MyClass &class);
func(const MyClass &class);
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
23.11.2015, 17:27
Ответы с готовыми решениями:

Передача объектов дочерних классов через массив объектов родительского класса в функцию
Здравствуйте. Возможно, вопрос больше относится к теории ООП, но все же я не решился задавать его в...

Передача в функцию динамический массив объектов первого и второго типа
каким способом это можно сделать ? )

Присваивание объектов одного типа между собой и передача объекта в функцию по значению
При первом знакомстве с С++ усиленно не могу понять вот такие моменты : 1. Имеем вот такой код : ...

Передача нескольких объектов в функцию и обратно
Доброго времени суток. С Java, честно, не знаком, вообще. Немножко знаю плюсы. Поэтому некоторые...

5
Эксперт PHP
3106 / 2591 / 1219
Регистрация: 14.05.2014
Сообщений: 7,236
Записей в блоге: 1
23.11.2015, 17:32 2
Цитата Сообщение от Ryder95 Посмотреть сообщение
C++
1
2
3
4
func(MyClass class);
func(MyClass *class);
func(MyClass &class);
func(const MyClass &class);
1) Передача по значению - объект копируется, и в функции ведется работа с копией объекта
2) Передается адрес объекта - работа в функции ведется с самим объектом через указатель
3) Передается ссылка на объект - работа в функции ведется с самим объектом
4) Передается константная ссылка - работа в функции ведется с самим объектом, но при этом объект нельзя изменять, можно только пользоваться его значениями и вызывать функции, которые в классе объявлены как константные.
1
54 / 45 / 18
Регистрация: 09.02.2015
Сообщений: 165
23.11.2015, 17:34 3
1 - передача по значению (т.е. через копирование исходного объекта во временную переменную)
2 - передача указателя на объект (т.е. непосредственно через указатель на адрес памяти)
3 - передача по ссылке (грубо говоря передача исходного объекта)
4 - тоже что и 3, но запрещает изменение исходного объекта
0
Эксперт PHP
3106 / 2591 / 1219
Регистрация: 14.05.2014
Сообщений: 7,236
Записей в блоге: 1
23.11.2015, 17:44 4
Цитата Сообщение от Kerry_Jr Посмотреть сообщение
его значениями
Как-то криво написал. Лучше так: значениями его открытых полей.
0
Диссидент
Эксперт C
27706 / 17322 / 3812
Регистрация: 24.12.2010
Сообщений: 38,979
23.11.2015, 17:47 5
Как я понимаю, варианты 2 и 3 идентичны, только записываются по разному (и в вызове функции, и в ее теле)
0
Эксперт PHP
3106 / 2591 / 1219
Регистрация: 14.05.2014
Сообщений: 7,236
Записей в блоге: 1
24.11.2015, 00:50 6
Цитата Сообщение от Байт Посмотреть сообщение
варианты 2 и 3 идентичны
Так точно! Чем пользоваться - дело вкуса.
0
24.11.2015, 00:50
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
24.11.2015, 00:50
Помогаю со студенческими работами здесь

C++ & winapi - передача объектов переменных в функцию thread для их обработки?
#include "WinThread.h" //int flag; LPVOID hf1,hf2,hf3,hf0; void CALLBACK f2(void*) {...

Особенности чтения файлов при помощи объектов класса ofstream
Когда в объект ofstream забивается имя файла, который уже существует - он заменяется. Стирается...

Передача структуры данных в поток, особенности работы с переданными данными
Здравствуйте! Требуется передать в поток набор данных, которые нужны и во время работы и потока, и...

Особенности передачи объекта в функцию
Вечер добрый, форум! Вопрос такой. Предположим есть класс class1, и есть class2, который...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru