0 / 0 / 0
Регистрация: 09.05.2013
Сообщений: 6
|
|||||||||||||||||||||
1 | |||||||||||||||||||||
Передача параметра, выделенного в куче, в функцию09.05.2013, 21:59. Просмотров 593. Ответов 13
Метки нет Все метки)
(
Доброго времени суток. Возник такой вопрос.
Пусть имеется некоторый класс, под объект которого выделяется память:
Благодарю за ответы.
0
|
|
09.05.2013, 21:59 | |
Передача параметра в функцию Передача параметра в функцию Передача параметра в функцию класса Передача параметра string в функцию |
|
499 / 349 / 93
Регистрация: 22.03.2011
Сообщений: 1,111
|
||||||
09.05.2013, 22:25 | 2 | |||||
1
|
0 / 0 / 0
Регистрация: 09.05.2013
Сообщений: 6
|
|
09.05.2013, 22:50 [ТС] | 3 |
Да дело то в том, что мне по большому счёту без разницы, работают все три варианта. Я хотел разобраться, какой метод в таком случае более приемлем.
Наверное лучше использовать передачу по значению, раз всё равно объект копировать, тем более, что размер его вряд ли превысит 30кб.
0
|
499 / 349 / 93
Регистрация: 22.03.2011
Сообщений: 1,111
|
||||||
09.05.2013, 22:58 | 4 | |||||
Да. И нет)
Есть еще такое понятие как std::move. Если кратко то оно меняет местами "внутренние" указатели.
0
|
0 / 0 / 0
Регистрация: 09.05.2013
Сообщений: 6
|
|||||||||||
10.05.2013, 00:40 [ТС] | 6 | ||||||||||
Как это? А что же тогда такое *pClass ?
Я так понимаю, это
Еще вопрос про первый случай (который я посчитал корявым), возникают ли в нём какие-то ненужные копирования или выделения на стеке?
0
|
499 / 349 / 93
Регистрация: 22.03.2011
Сообщений: 1,111
|
||||||
10.05.2013, 00:45 | 7 | |||||
Наоборот все что слева от * относиться к константности обьекта, справа указателя.
1
|
5477 / 4872 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
|
|||||||||||
10.05.2013, 01:25 | 8 | ||||||||||
Запутали. Что вы, собственно, разыменовываете если:
По-моему, при передаче по ссылке, в любом случае (и в этом "корявом"), в функцию передаётся указатель (адрес). Поэтому, если есть указатель, нет смысла в передаче по ссылке, через разыменование указателя.
1
|
0 / 0 / 0
Регистрация: 09.05.2013
Сообщений: 6
|
|
10.05.2013, 10:50 [ТС] | 9 |
0
|
Tulosba
|
10.05.2013, 11:46
#10
|
Не по теме: -OggY-, для разбора того, чем является идентификатор в С/С++ удобно пользоваться правилом "спирали":
1
|
0 / 0 / 0
Регистрация: 09.05.2013
Сообщений: 6
|
|
10.05.2013, 19:03 [ТС] | 11 |
Коллеги со Stack Overflow убедили меня, что третий вариант самый приемлемый в моей ситуации, поскольку мне в любом случае нужна копия объекта, а 30кб (предполагаемый размер объекта) - не так страшно для стека на короткий период времени.
Всем спасибо за ответы.
0
|
0 / 0 / 0
Регистрация: 09.05.2013
Сообщений: 6
|
|
10.05.2013, 21:45 [ТС] | 14 |
Да конечно, копия сильно меняется впоследствии, иначе вопросов бы не возникало )
0
|
10.05.2013, 21:45 | |
Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь. Передача строчного параметра в функцию Передача параметра в функцию сортировки Передача массива в функцию в качестве параметра Передача потока как параметра в функцию Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |