Компилятор Apple iOS ObjC не выполняет виртуальный деструктор родителя C ++ - PullRequest
0 голосов
/ 21 января 2019

Мы столкнулись с этой проблемой на стороне C ++ компилятора ObjC:

class A {
   char *buf;
   public:
      A() { buf = new char[BUF_LENGTH]; }
      virtual ~A() { delete [] buf; }
};
class B: public A {
   public:
      virtual ~B() {}
};

По какой-то причине A :: ~ A () не был вызван из B :: ~ B (), поэтому при проверке памяти, помеченной B :: ~ B (), произошла утечка памяти. Когда мы удалили пустой деструктор, код сработал.

Кто-нибудь знает, что происходит?

...