Как передать умные указатели в функции?C++

Программы на C++. Форум разработчиков
Ответить Пред. темаСлед. тема
Anonymous
 Как передать умные указатели в функции?

Сообщение Anonymous »

При передаче объектов в функции применяются ли те же правила к интеллектуальным указателям, что и к другим объектам, которые содержат динамическую память? < /p>

Когда я прохожу, например, std :: vector < /code> в функцию я всегда рассматриваю следующие варианты: < /p>


[*] Я собираюсь изменить состояние вектора, но я не выполняет размышления. < /p>

Код: Выделить всё

void function(std::vector vec);
[*] Я собираюсь изменить состояние векторного объекта, и я [/b] хочу, чтобы эти изменения отразились после завершения функции, а же сделайте ссылку. < /p>

Код: Выделить всё

void function(std::vector & vec);
Этот объект довольно большой, поэтому я бы лучше передал ссылку, но сказал компилятору не позволять мне менять. < /p>

void function(std::vector const& vec);
< /code> < /li>
< /ol>

Теперь это та же логика с умными указателями? А когда я должен рассмотреть семантику движения? Некоторые рекомендации о том, как я должен передать умные указатели, - это то, чего я хочу больше всего.

Подробнее здесь: https://stackoverflow.com/questions/125 ... -functions
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C++»