2014-09-17 3 views
0

Я читаю об алгоритмах в следующем местоположении.Использование алгоритма сравнения в STL

http://www.brpreiss.com/books/opus4/html/page116.html

Здесь упоминаются как ниже

template <class T> 
int Wrapper<T>::CompareTo (Object const& obj) const 
{ 
    Wrapper<T> const& arg = 
    dynamic_cast<Wrapper<T> const&> (obj); 
    return ::Compare (datum, arg.datum); 
} 

Функция CompareTo элемента реализована таким же образом, как функции члена Хэша. I.e., он вызывает глобальную (нечленную) функцию ::Compare для фактического сравнения.

Мой вопрос; что означает автор в функции глобального сравнения в C++? Нужно ли включать какой-либо заголовочный файл здесь, поскольку код не компилируется?

+0

Единственный STL 'compare', который я знаю, из' '[string :: compare] (http://www.cplusplus.com/reference/string/string/compare/) – CoryKramer

+4

Это должен быть какой-то шаблон глобальной функции, созданный авторами. В любом случае, эта книга выглядит довольно ужасно. Вывод всего из 'Object' ?! –

+6

Мой совет: не беспокойтесь об этом. Есть лучшие способы тратить свое время, чем на то, чтобы прочитать ум автора книги, который является настолько устаревшим. Даже если предположить, что это было лучшее, на что вы могли бы надеяться в то время, книга на C++ с авторским правом 1997 года гарантированно будет очень устаревшей. –

ответ

0

Как один из упомянутых выше замечаний здесь, в этом контексте Сравнение не имеет ничего общего с STL. Я пропустил последнее предложение на странице: «Реализация подходящей функции сравнения оставлена ​​в качестве проекта для читателя»

Смежные вопросы