#include struct doctor { std::string label; doctor(std::string n) : label(n) { } ~doctor() { std::cout << "Bye from doctor " << label << std::endl; } }; static doctor death("death"); doctor frankenstein("frankenstein"); int main(int argc, char** argv) { doctor dolittle("dolittle"); static doctor strangelove("strangelove"); // destructors will be called for all static objects: death, frankenstein, strangelove // destructor will NOT be called for automatic storage objects: doolittle exit(0); return 0; }