- Destructor)
- Copy constructor)
- Copy assignment operator)
C ++ three rules: If you need destructor, you must copy the constructor and value assignment operator.
To understand this sentence, first of all, we know from the perspective of "if you need destructor" that there must be a member of the pointer type in the class (otherwise we do not need to write the destructor, the default destructor can be used). Therefore, we need to write the destructor to release the memory allocated to the pointer to prevent memory leakage, so why do we say "We must copy constructors and value assignment operators"? The reason is as follows: pointer type members appear in the class. For a member with pointer type, we must avoid the problem of shallow copy. Therefore, we must copy constructors and value assignment operators. These two functions are necessary to prevent shallow copy problems.