2016-11-17 2 views
2

Скажем, у меня есть такой классЕсли я объявляю вектор в классе C++, будет ли он уничтожен, то instate класса будет уничтожен?

class A { 
public: 
     vector<int> intVector; 
     A() { 
      intVector.push_back(1); 
     }; 
     ~A(){}; 
}; 

int main() { 
     A *k = new A; 
     delete k; 
} 

Когда А конкретизируется, как к, intVector будет создан. Однако, мой вопрос: если деструктор не заботится о intVector, будет ли память, выделенная для intVector, переработана, когда указатель k будет уничтожен?

+0

Вашего деструктора правильно. – Jarod42

ответ

1

Да, компилятор будет генерировать код внутри деструктора класса, чтобы уничтожить все переменные-член (и вызывать любые деструкторы базового класса, что класс является производным от)

+0

Спасибо! Я думал, что это должно быть удалено, поскольку переменная внутри класса была удалена, но не была уверена, как это сделать. – Musen