Constructors are used for initial set-up of things a given instance of a class needs - say, if you're creating a generic spaceship class in a video game, you might give it a constructor that takes things like shape/model, mass, and engine power as arguments, so that any given instance knows what kind of spaceship it's trying to be.
Destructors are used for any clean-up that needs to get done before an instance of a class exits. If an instance of a class has memory allocated outside of its basic member storage, or if it's gotten exclusive access to the display, or something, then it needs to relinquish all that, otherwise you'll wind up with errors like memory leaks and device conflicts.