First, let's look at the output of the following code:
The above code is taken for granted by exchanging the two objects of derived. HoweverAssign values through pointersThe output is not as expected:
Actually, we call base operator =, which means that we assign the base part of D2 to D1, and the current d1 is "generally our own derived, half is the D2 base "monster !!!
It seems that the compiler ignores our intention and cannot assign values to such pointers. So what we need is a dynamic type, so we can "operator = Virtual ".
However, the pointer is copied, but the average object Value assignment is inexplicable.
Therefore, it is also necessary to add an object's own value assignment operator, as shown below:
Result:
Okay, but this is only a small step. For the case of multiple inheritance, the above Code will have some puzzling answers:
[To be continued]