Срезка и расщепление
Срезка[Страуструп] или расщепление [Брюс Эккель] - неправильное использование преобразования типа производного класса, в результате чего происходит “срезка” типа и содержимого производного класса до содержимого базового класса.
Рассмотрим класс Point2d являющийся базовым для Point3d. В следующем примере происходит срезка объекта :
Чтобы срезки не происходило, необходимо не использовать передачу параметра по значению(как в примере), т.к. в этом случае вызывается конструктор копирования для базового класса(в этом и заключается причина срезки). Правильнее передавать параметры по ссылке или по указателю.
Более развернутый пример, иллюстрирующий срезку :