Итак, я углубляюсь в C ++, чем в школе, как часть личного проекта, над которым я работаю.Я Java-разработчик, поэтому к управлению памятью немного сложно привыкнуть, и теперь, когда я стараюсь изо всех сил писать код определенным образом, у меня есть быстрый вопрос об неизменяемых классах.
Когда я думаю о них как о концепции, я, конечно, сравниваю их со строками в Java.Но теперь, когда я нахожусь на C ++, операция переназначения может потенциально привести к утечке памяти (или, по крайней мере, я так думаю).Так что теперь, если я сделаю это:
MyImmutableClass a ("blah");
a = a.modifyInSomeWay();
, где modifyInSomeWay возвращает новый экземпляр MyImmutableClass, я не вызвал деконструктор.Есть ли что-то, чего я здесь упускаю, что помешало бы первому назначению 'a' остаться в памяти?