Я прочитал в C++ : The Complete Reference
книге следующее
Несмотря на то, что объекты передаются функциям с помощью обычного механизма передачи параметров вызова по значению, который теоретически защищает и изолирует вызывающий аргумент, по-прежнему возможен побочный эффект, который может повлиять или даже повредить , объект, используемый в качестве аргумента. Например, если объект, используемый в качестве аргумента, выделяет память и освобождает эту память при уничтожении, то его локальная копия внутри функции освободит ту же память при вызове его деструктора. Это оставит исходный объект поврежденным и фактически бесполезным.
Я не очень понимаю, как возникает побочный эффект. Может ли кто-нибудь помочь мне понять это на примере?