Форум программистов, компьютерный форум CyberForum.ru

Не могу определить ошибку (конкретизация шаблонной функции) - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ строка http://www.cyberforum.ru/cpp-beginners/thread453122.html
Всем привет! Есть вопрос: Создать класс Time для работы со временем в формате «час:минута:секунда». Класс должен включать в себя функциию инициализации строкой (например, «23:59:59»). Помогите пожалуйста реализовать, а то неправильно получается((
C++ Алгоритмы замещения страниц(STL, вторая попытка) Помогите пожалуйста найти ошибку в алгоритме, вроде все правильно работает, но иногда при разных входных данных возникает ошибка. Так вот, решил реализовать алгоритм замещения страниц "Вторая попытка". Коротко о задаче, имеется память ограниченного размера, в память на вход подаются страницы, алгоритм подобен FIFO, отличие в том, что если страница есть в памяти, то она переводится в конец... http://www.cyberforum.ru/cpp-beginners/thread453116.html
Почему for_each() не выводит кирилицу C++
Вот такой код: #include <iostream> #include <string> #include <vector> #include <algorithm> void show(const std::string & s); int main() { using namespace std; setlocale(0, "");
C++ Перевод из одной системы счисления в другую.
Мне задали сделать калькулятор для программиста на языке С. В нем требуется выполнение операций только целые числа, 4 арифметических действия, битовые операции | & ~ ^, перевод в 8,10,16,2 систему исчисления. Вопрос: Есть ли функции в С которые осуществляют перевод в 8,10,16,2 систему исчисления? Какие это функции, как их использовать. P.S. Если вы уже делали такой калькулятор, выложите...
C++ Числа - близнецы http://www.cyberforum.ru/cpp-beginners/thread453065.html
В массиве простых чисел определить наличие чисел-близнецов (11-13; 7-5; 3-5)
C++ функция вывода системного времени Всем привет! Необходимо написать функцию вывода текущего системного времени Вот слепил, а не работает: void InitTime(Time& time) { time_t rawtime; struct tm *timeinfo; time(&rawtime); подробнее

Показать сообщение отдельно
eaglecrazy
1 / 1 / 0
Регистрация: 06.02.2012
Сообщений: 31
28.02.2012, 23:26  [ТС]     Не могу определить ошибку (конкретизация шаблонной функции)
Вот я и добрался до компьютера. Прочитав пост retmas решил выделить функцию для сравнения. Но решил сделать функцию - член класса, а не просто шаблонную, ибо хочу разобраться в данном вопросе. Сделал две функции для классов Tree<T> и Tree<char*> и определил класс Tree<char*> Вот что вышло:

Класс Tree<char*>
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
template<>
class Tree<char*>
{
        public:
        Tree();
        ~Tree();
        void inTree(char* &);
        void printPreOrderTraversal();
        void printInOrderTraversal();
        void printPostOrderTraversal();
 
    private:
        void destructorHelper(Leaf<char*> *);
        void inTreeHelper(const char* &, Leaf<char*> *);
        void printPreOrderTraversalHelper(Leaf<char*> *);
        void printInOrderTraversalHelper(Leaf<char*> *);
        void printPostOrderTraversalHelper(Leaf<char*> *);
        int myCompare(const char* &, const char* &);
        Leaf<char*> *newLeaf(const char* &);
        Leaf<char*> *root;
};
Сравнение для Tree<T>:
C++
1
2
3
4
5
6
7
8
9
10
template<typename T>
int Tree<T>::myCompare(const T &a, const T &b)
{
    if (a < b)
        return -1;
    else if (a > b)
        return 1;
    else
        return 0;
}
Сравнение для Tree<char*>:
template<>
int Tree<char*>::myCompare(const char* &a, const char* &b)
{
if(strcmp(a, b) < 0)
return -1;
else if(strcmp(a, b) > 0)
return 1;
else
return 0;
}

В итоге получается та же ошибка:
C++
1
 15/15-17/Tree.h|205|error: template-id ‘myCompare<>forint Tree<char*>::myCompare(const char*&, const char*&)’ does not match any template declaration|
Что я на этот раз неправильно делаю?
И вот ещё вопрос, почему когда я делаю специализированную функцию для классов Tree<char> или Tree<int> без описания специального класса, всё работает, и только когда нужно сделать для типа Tree<char*> не хочет?
 
Текущее время: 07:28. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru