When can an object of a class call the destructor of that class, as if it\'s a regular function? Why can\'t it call the constructor of the same class, as one of its regular
Who says you can't? You just have to know how.
void Foo::Bar() { *this = Foo(); // Reset *this }