- FreeMode
- FreeMode
- Total
- IsSorted
- SortMode
- CreateElement
- Add
- Insert
- DetachCurrent
- DeleteCurrent
- Delete
- Clear
- IndexOf
- GetNodeAtIndex
- GetFirstNode
- GetPrevNode
- GetCurrentNode
- GetNextNode
- GetLastNode
- Sort
- MoveToIndex
- Exchange
- CompareList
- Search
- Save
- Load
- Type
FreeMode
Define o flag de gerenciamento de memória ao excluir itens da lista.
void FreeMode(
|
Parâmetros
mode
[in] O novo valor do flag de gerenciamento de memória.
Observação
Definir o flag de gerenciamento de memória - um ponto importante no uso da classe CList. Desde que os elementos da lista são ponteiros para objetos dinâmicos, é importante determinar o que fazer com eles quando remover a partir da lista. Se o flag estiver definido, então remove um item da lista, o item é excluído automaticamente pelo operador "delete". Se o flag não está definido, é assumido que um ponteiro para o objeto excluído ainda está em algum lugar no programa do usuário e será aliviado dele (do programa) então.
Se o usuário resetar o flag de gerenciamento de memória, deve compreender a sua responsabilidade para a remoção dos itens na lista antes da conclusão do programa, porque de outra forma, a memória liberada não é ocupada pelos elementos quando eles criam um novo operador. Se o usuário não resetar o flag de gerenciamento de memória, há um outro "recife", ou seja, grandes quantidades de dados eventualmente poderiam até mesmo quebrar o seu terminal.
Usando ponteiros, itens da lista armazenados em algum lugar das variáveis locais, após a remoção da lista, irá levar a um erro crítico e trava o programa do usuário. Por padrão, o flag de gerenciamento de memória está definido, ou seja, a classe da lista é responsável por liberar os elementos de memória.
Exemplo
//--- example for CList::FreeMode(bool)
|