Почему бы не использовать Double или Float для представления валюты?

Это несколько решение по выбору языка. В Ruby , например, private действительно означает private, как в «только экземпляр может обращаться к своим собственным частным данным». Однако это несколько ограничивает.

Как указано в комментариях, конструкторы копирования и операторы присваивания являются общими местами, где вы напрямую обращаетесь к частным частным данным другого экземпляра. Есть менее очевидные причины.

Рассмотрим следующий случай. Вы реализуете связанный список OO. Связанный список имеет класс вложенных узлов для управления указателями. Вы можете реализовать этот класс узлов таким образом, чтобы он управлял самими указателями (вместо того, чтобы указатели были общедоступны и управлялись списком). В таком случае у вас будут объекты узлов, которые хотят изменить указатели других узлов объектов в других местах, которые типичны для конструктора копирования и оператора присваивания.

857
задан Adirio 4 January 2018 в 17:44
поделиться