I guess you already know this, but normally the destructor will be called automatically when the time has come for your object.
If you created the object itself dynamically (with "new", then you need to destroy the object yourself with "free". In this case also the destructor will be called automatically.
In other cases, yes, you would call the destructor like you described. In this case, (if you destructor is correct) the object frees all the memory it allocated dynamically, but the object itself will continue to exist until its time cometh. AFAIK it is not very common to do this.