Lecture 4 - Slide 19 : 40 |
Motivates the need for copy constructors and assignment overloading in C++
The starting point is automatic variables of class type (value semantics)
Class LineSegment has a pointer to the first Point in an array
![]() | Class LineSegment WITHOUT copy constructor and and WITHOUT assignment operator. |
![]() | The corresponding cc file - not particularly relevant. |
![]() | A function that constructs, initializes and assigns LineSegments. |
![]() | Program execution. |
The problem is that the first destruction of a LineSegment object destructs (deallocates) the shared Point array in the free store
The two next destructions encounter dangling references
The program is improved on the next slide