У меня есть структура/класс с членом, который является указателем, скажетудаления указателя, который является общественным классом членом
struct myStruc
{
int* m_p;
}
1. Вопрос: Где я должен удалить указатель? В деструкторе?
myStruct::~myStruct()
{
delete m_p;
}
2. Вопрос: Что делать, если указатель назначен на массив указателей, например,
myStruct mS;
mS.m_p = new int[3];
Есть хороший способ (без dynamic_cast или попытаться прилов), чтобы теперь, если я должен сделать delete
или delete[]
?
A/Путь заключается в том, чтобы выделить память в конструкторе и освободить его в деструкторе. –
Можете ли вы рассказать больше о прецеденте? Какова цель myStruc? Кто устанавливает m_p? На что указывает m_p? Кто это решает и знает? –
[Пункт 20: Избегайте использования данных в общедоступном интерфейсе.] (Http://www.amazon.com/Effective-Specific-Improve-Programs-Designs/dp/0321334876) –