что никаких виртуальных методов в стратегиях не должно быть по дизайну. Деструкторы стратегий должны быть protected. В связи с этим возник вопрос к такому примеру:
                  
                  
                  
                  
                  
                  class test
                  
                  
                  {
                  
                  
                  public:
                  
                  
                      test()
                  
                  
                      {
                  
                  
                          std::cout << "test init" << std::endl;
                  
                  
                      }
                  
                  
                      void Delete()
                  
                  
                      {
                  
                  
                          delete this;
                  
                  
                      }
                  
                  
                  protected:
                  
                  
                      ~test()
                  
                  
                      {
                  
                  
                          std::cout << "test deleted" << std::endl;
                  
                  
                      }
                  
                  
                  };
                  
                  
                  
                  
                  
                  Если я создаю такой объект, а потом делаю примерно так:
                  
                  
                  
                  
                  
                  int main()
                  
                  
                  {
                  
                  
                      test* t = new test;
                  
                  
                      t->Delete();
                  
                  
                  
                  
                  
                      return 0;
                  
                  
                  }
                  
                  
                  
                  
                  
                  Будет ли очищена память, которую выделил new ?
                  
                  
                
https://t.me/xthon/809 извините
А почему память не очистится? 🤔 Должна ведь... (прошу прощения, если иное есмь очевидно, а я не в курсе)
Да.
вообще, про отсутствие виртуальных методов в исполнении Александреску я могу понять и даже разделить, но деструкторы-то чем не угодили?
Обсуждают сегодня