Программирование на языке MFC

Мой второй блог в серии программирования

Класс CMapWordToOb


В качестве аргументов методу передаются ключ и ассоцииро­ванное с ним значение. Вся соль этого метода состоит в том, каким образом переопределен оператор П в классе CMapWordToOb. Ис­ходный текст этого переопределения, находящийся в файле map__wo.cpp, приведен ниже:

C0bject*& CMapWordToOb::operator[](WORD key) {

ASSERT_VALID(this);

UINT nHash; CAssoc* pAssoc;

if ((pAssoc = GetAssocAt(key, nHash)) == NULL) {

if (m_pHashTable == NULL)

InitHashTable(m_nHashTableSize);

// it doesn’t exist, add a new Association pAssoc = NewAssoc(); pAssoc->key = key;

// xpAssoc->value’ is a constructed object, nothing more

// put into hash table pAssoc->pNext = m_pHashTable[nHash]; m_pHashTable[nHash] = pAssoc;

}

return pAssoc->value; // return new reference

}

Похожие статьи: