Насколько я знаю, я должен уничтожить в деструкторах все, что я создал с помощью new
, и закрыть открытые потоки и другие потоки.
Однако у меня есть некоторые сомнения относительно других объектов в С++:
-
std::vector
иstd::string
s: они автоматически уничтожаются? -
Если у меня есть что-то вроде
std::vector<myClass*>
указателей на классы. Что происходит, когда вызывается векторный деструктор?
Будет ли он автоматически вызывать деструкторmyClass
? Или только вектор уничтожен, но все содержащиеся в нем объекты все еще существуют в памяти? -
Что произойдет, если у меня есть указатель на другой класс внутри класса, скажем:
class A { ClassB* B; }
и класс A в какой-то момент кода уничтожается. Будет ли уничтожен класс B или только указатель, а класс B будет все еще существовать где-то в памяти?