Если я не хочу удалять m_modulType, m_powerDomain и m_father (поскольку они могут ссылаться на другой объект, нужно ли явно писать метод деструктора?
m_powerDomain
, m_father
и m_modulType
являются указателями, и объекты, на которые они указывают, не будут удалены, если вы не сделаете это явно. Поэтому вы должны написать деструктор, если хотите, чтобы они были удалены, в противном случае они нуждаются внет.
Я знаю, что строка является стандартным объектом и будет уничтожена его собственным деструктором, но будет ли ConnexionHashMap уничтожаться стандартным деструктором шаблона hashmap или я должен каким-то образом удалить его вручную?*
Дело не в том, что std::string
- это стандартный объект, который автоматически удаляет их, а в том, что вы включаете std::string
в свой класс в качестве члена, поэтому строка физически размещается внутрипамять вашего объекта и когда этот удален, первый также (без необходимости указывать что-либо в деструctor).
Все равно, m_connexions
, который включен как элемент объекта, а не указатель, будет автоматически удален деструктором, не нужно ничего делать.
(такжена sidenote есть простой способ увидеть, как моя память управляется, когда моя программа работает на Eclipse cdt?)
вы можете использовать профилировщик, такой как valgrind или любой другой, который вы найдете в наличии ...