2012-04-04 2 views
0

Я обнаружил, что неоднократно писал следующие функции:Попытка сделать фрагмент кода C++ (MFC) легко повторного использования. Каковы варианты?

// This function will try to find the 'item' in 'array'. 
// If successful, it will return 'true' and set the 'index' appropriately. 
// Otherwise it will return false. 
bool CanFindItem(data_type item, const data_type* array, int array_size, int& index) const 
{ 
    bool found = false; 
    index=0; 
    while(!found && i < array_size) 
    { 
     if (array[index] == item) 
       found = true; 
     else index++;    
    } 

    return found; 
} 

Обычно я пишу подобную функцию для каждого класса/структуры и т.д. нужен.

Мой вопрос в том, есть ли способ, чтобы этот фрагмент был готов к использованию, не переписывая его? Я программирования в VS 2010.

ответ

1

Вы можете превратить его в шаблон, перемещая его в файл .h и положить template<typename data_type> на фронт функции.

Вы также можете переключиться на использование стандартных функций C++, таких как std::find algorithm.

0

Даже в MFC вы можете использовать современные (то есть после 1995) C++ и STL конструкций

+0

@wartim - извините, это было немного скучно! Но прежде чем тратить время на запись, все эти функции смотрят на учебник STL. Сложно начинать, но это сэкономит вам много лет впустую в долгосрочной перспективе –

0

Вы можете использовать std::find ... Есть пример использования массива в ссылке.

(std::find (array,array + array_size, item) != array + array_size);