Q:

Is dynamic memory destroyed when static object is destroyed?

Taking a look to the following code snippet:
//A.h
class A
{
  void f();
};

//A.cpp
#include "A.h"

void A:f()
{
  map<string, string> *ThisMap = new map<string, string>;

  //more code (a delete will not appear)
}

//main.cpp
#include "A.h"

int main( int argc, char **argv )
{
  A object;

  object.f();

  //more code (a delete will not appear)

  return 0;
}

When main() ends it execution, object will be destroyed. Would be destroyed dinamic allocated memory asigned to ThisMap too?

A:

Would be destroyed dinamic allocated memory asigned to ThisMap too?

No!
You have a memory leak, since object gets destroyed, its destructor gets called, but no delete is called for your map.
Pro-tip: delete whatever you new'ed, when you are done with it.

PS: I highly doubt it that you need to dynamic allocate a standard container (like std::map), but if you really are sure that you need to use, then consider using std::unique_ptr.

