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

Шаблонные методы шаблонного класса в cpp-файле - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Общий параметр для всех классов и создание объекта по известному адресу http://www.cyberforum.ru/cpp-beginners/thread1226868.html
Разработайте и реализуйте класс counted_ptr<T>, владеющий указателем на объект типа T, и указатель, подсчитывающий количество ссылок (переменная типа int), общий для всех указателей, с подсчетом ссылок на один и тот же объект типа T. Счетчик ссылок должен содержать количество указателей, ссылающихся на данный объект типа т. Конструктор класса counted_ptr должен размещать в свободной памяти...
C++ Реализовать проверку введенный значений Мне нужно, чтобы пользователь мог вводить только числа (например, в калькуляторе), а если вводится буква, выводится сообщение "Введите число, а не букву". Как это сделать? Подскажите, пожалуйста. http://www.cyberforum.ru/cpp-beginners/thread1226866.html
Нужно исправить код C++
я новичок в с++ помогите исправить код, если можно покажите код в исправном виде мне сказали так, но я сам новичок и не понимаю:wall: Необходимо отдельно определить каждую функцию. А далее уже вызывать функцию там, где это необходимо. Т.е. нельзя определять одну функцию внутри другой. Т.е. определите функцию SearchFiles() вне функции main(). вот ошибка C:\Program Files (x86)\Microsoft...
Дописать подсчет среднего арифметического C++
дописать подсчет среднего арифметического, и куда ее вставить в этой программе?? ? { int _w,j; c.n++; _w=car->ADC((DoubleSlot) SlotNumber, (Channel) i_);
C++ Как подключить подпрограмму к программе? http://www.cyberforum.ru/cpp-beginners/thread1226830.html
Как перейти из main в nemain? #include<iostream> #include<conio.h> using namespace std; int main() { setlocale (LC_ALL , "Russian");
C++ Развернуть матрицу, как спираль, в линейный массив Дана квадратная матрица, она заполняется рандомно и выносится на экран. Требуется преобразовать эту матрицу в линейный массив, начиная с элемента mas и двигаясь по часовой стрелке сделать первый круг и далее, как по спирали, второй круг, пока не закончатся все элементы. Полученный массив надо распечатать, чтобы можно было посмотреть на результат. В связи с разработкой этой программы у меня... подробнее

Показать сообщение отдельно
QGuest
8 / 8 / 0
Регистрация: 08.01.2013
Сообщений: 85
13.07.2014, 21:40     Шаблонные методы шаблонного класса в cpp-файле
Есть класс-шаблон Map. В нем обьявленны несколько шаблонных методов forEach.
C++
1
2
3
4
5
6
7
8
9
10
11
template<typename K, typename V>
class Map : public Object {
public:
    /**/
    template<typename A, typename R> 
    R& forEach(A& arg, R& badResult, R&(*func)(Entry<K, V>*, A&));
    
    template<typename A> 
    void forEach(A& arg, void(*func)(Entry<K, V>*, A&)); 
    /**/
};
Их реализация находится в cpp-файле.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
template<typename K, typename V>
template<typename A, typename R> 
R& Map<K, V>::forEach(A& arg, R& badResult, R&(*func)(Entry<K, V>*, A&)) {
    for (int i = 0; i < size(); i++) {
        R& result = func(entrys->get(i), arg);
        if(result != badResult) return result;
    }
}
 
template<typename A>
template<typename K, typename V>
void Map<K, V>::forEach(A& arg, void(*func)(Entry<K, V>*, A&)) {
    for (int i = 0; i < size(); i++) {
        func(entrys->get(i), arg);
    }
}
Но вся проблема заключается в том, что компилятор на них ругается:
error C2244: Map<K,V>::forEach: не удается сопоставить определение функции существующему объявлению
Что сделано неправильно?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 00:01. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru