Managing Union Members That Require Copy Control
Like the type-specific assignment operators, the copy constructor and assignment operators have to test the discriminant to know how to copy the given value. To do this common work, we’ll define a member named copyUnion
.
When we call copyUnion
from the copy constructor, the union
member will have been default-initialized, meaning that the first member of the union
will have been initialized. Because our string
is not the first member, we know that the union
member doesn’t hold a string
. In the assignment operator, it is possible that the union
already holds a string
. We’ll handle that case directly in the assignment operator. That way copyUnion
can assume that if its parameter holds a string
, ...
Get C++ Primer, Fifth Edition now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.