A class destructor can be called when a variety of situations occur. Which choice is not one of those situations?
The garbage collector detects that an object is no longer going to be used.
The delete () function is called for an object pointer assigned with the new operator.
The program is terminated. This calls the destructor of static duration objects.
An automatic storage duration object goes out of scope.