Да, это правильно.Строка s
будет скопирована.
Однако есть одна интересная вещь о том, как обычно реализуется строка класса, которую стоит упомянуть.Если вы создаете новую строку из другой строки или из указателя const char, он сначала не копирует все символы в свой внутренний массив, но использует указатель на исходные данные.Только когда вы хотите изменить строку (или изменилась исходная строка), создается фактическая копия массива символов.Таким образом, строковые экземпляры эффективно совместно используют символьные данные, если они не изменены.
В случае вашего кода нажатие s
скопирует экземпляр строки, но не скопирует символы «привет», поэтому это будетбыть относительно быстрым.
РЕДАКТИРОВАТЬ:
, как отмечали другие, в настоящее время оптимизация копирования при записи больше не распространена, поэтому не обращайте внимания;) здесь некоторая информация, почемуэто дело