того, чтобы сравнивать элементы передаю экземпляр класса IComparer<T>:
                  
                  
                  
                  
                  
                  template<class T>
                  
                  
                  class ICompirer
                  
                  
                  {
                  
                  
                  public:
                  
                  
                    virtual int Compare(T x, T y);
                  
                  
                  };
                  
                  
                  
                  
                  
                  чтобы в коде программы выбрать необходимый способ сортировки я создаю новый класс и делаю public наследование от него:
                  
                  
                  
                  
                  
                  class cmp : public ICompirer<int>
                  
                  
                  {
                  
                  
                  public:
                  
                  
                    virtual int compare(int x, int y)
                  
                  
                    {
                  
                  
                      if (x > y)
                  
                  
                        return 1;
                  
                  
                      if (x == y)
                  
                  
                        return 0;
                  
                  
                      return -1;
                  
                  
                    }
                  
                  
                  };
                  
                  
                  
                  
                  
                  сортировку вызываю как-то так:
                  
                  
                  
                  
                  
                  cmp comparer;
                  
                  
                  list4.sort(comparer);
                  
                  
                  
                  
                  
                  выдает ошибку линковки. Что делаю не так?
                  
                  
                
У тебя Compare не реализован
Compare и compare
А Compare должен быть чисто виртуальным, раз у тебя интерфейс
virtual int compare(..) = 0; В интерфейсе Это аналог abstract
Во-первых надо тебе сказать, что интерфейс ICOmpirer тебе тут абсолютно не нужен. ...
Во-вторых, что сортировка списков -- вещь вредная.
В третьих, что этот код стилистически очень странный. virtual int compare(int x, int y) { if (x > y) return 1; if (x == y) return 0; return -1; } Надо было return x - y;
Если ты ещё не разобрался, то шли код и ошибки.
Обсуждают сегодня