109
правок
Изменения
Нет описания правки
* В заголовочных файлах у сигнатур функций необходимо писать имена аргументов, чтобы можно было понять, который что значит. Возможным исключением являются операторы, для которых это и так достаточно очевидно.
* Значения аргументов по умолчанию должны находится в заголовочных файлах, а не в файлах с реализацией.
* В c++ нет гарантий на то, как будет соотносится размер указателя и какого-нибудь интегрального типа. Поэтому для swap'а union'ов недостаточно обменть те члены, которые, как вам кажется, не меньше по размеру осталостальных. Наиболее правильным решением является создание именованного union'а, к которому можно применить std:swap.* Конструктор копирования и оператор присваивания умеют создаваться автоматически. Если для класса нет необходимости писать специальную версию этих функций и нет каких-то других причин для этого, то лучше и не делать.