title: default override of virtual destructor
body: <p>Everyone knows that the desructor of base class usually has to be virtual. But what is about the destructor of derived class? In C++11 we have keyword "override" and ability to use the default destructor explicitly.</p>
  
  <pre><code>struct Parent
  {
    std::string a;
    virtual ~Parent()
    {
    }
  
  };
  
  struct Child: public Parent
  {
    std::string b;
    ~Child() override = default;
  };
  </code></pre>
  
  <p>Is it correct to use both keywords "override" and "=default" in the destructor of Child class? Will compiler generate correct virtual destructor in this case?</p>
  
  <p>If yes, then can we think that it is good coding style, and we should always declare destructors of derived classes this way to ensure that base class destructors are virtual?</p>