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

Ошибка с шаблонами - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ WinAPI Найти минимум и максимум функции двух переменных в заданной области http://www.cyberforum.ru/cpp/thread1639402.html
Попробовал решить эту задачу в несколько потоков #include <Windows.h> #include <process.h> #include <stdio.h> #include <intrin.h> static __int64 GlobalPerfCountFrequency;
C++ Dsd-master 1.7 для декодирования d-star здравствуйте уважаемые форумчане, мне нужна помощь в запуске программы через bash в cygwin в windows но данная программа на данный момент хранится в не скомпилированном варианте. Кто то давно его компилировал под cygwin, но позже удалил теперь его нужно восстановить. данная программа позволяет при помощи обыкновенной радиостанции через динамик на частотах d-star, dmr и motorbo (цифровые... http://www.cyberforum.ru/cpp/thread1639265.html
C++ Исправить код базы данных
Помогите решить задачу Особенности - условие задачи является внедрение трех функций - insert - вставить новую строку (запись) в системе со всей информацией, -find - указано количество столбцов, по которым она ищет -номера столбцов считаются от 0 - параметр функции является тип в соответствии с выбранной колонкой - возвращает список строк из системы (желательно ссылки...
C++ MPI задача коммивояжера методом ветвей и границ
помогите реализацией задача коммивояжера методом ветвей и границ на вычислительном кластере. может у кого то готовая программа есть или пример
C++ Нужна программа Логическая игра "Маджонг" может кто делал http://www.cyberforum.ru/cpp/thread1637074.html
Игра Маджонг, В ходе игры необходимо очистить игровое поле, убирая одинаковые фишки. удаляться они могут только в том случае, если у фишки открыта хотя бы одна сторона. Сложность игры зависит от раскладки...чем больше открытых фишек, тем проще их убирать с поля.. игра может длиться долгое время. Нужна программа на С++ не важно Visual, Builder ,... итд
C++ Скомпилировать OpenPegasus под Win32. C/C++ Помогите скомпилировать OpenPegasus под Win32. C/C++ Есть проект OpenPegasus под Unix. Нужно его скомпилировать под Windows. Цель - поднять WMI/Wbem service provider на Win32. Исходники https://collaboration.opengroup.org/pegasus/documents.php?action=show&dcat=&gdid=32572 подробнее

Показать сообщение отдельно
NikBond
2 / 2 / 2
Регистрация: 21.07.2015
Сообщений: 36

Ошибка с шаблонами - C++

16.01.2016, 03:32. Просмотров 141. Ответов 1
Метки (Все метки)

Возникла проблема. Пример: Создал шаблонный класс с двумя параметрами, один из которых задан по умолчанию. С одной стороны, все работает:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
 
using namespace std;
 
template <class A, class B = A>
class MyClass{
    A a;
    B b;
    public:
        void foo(){
            cout << "Hello";
        };
};
 
int main(){
    MyClass <int> test;
    test.foo();
    return 0;
}

Но если сделать все порядочно и вынести реализация методов за их объявление:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <iostream>
 
using namespace std;
 
template <class A, class B = A>
class MyClass{
    A a;
    B b;
    public:
    void foo();
};
 
template <class A, class B = A>
void MyClass <A>:: foo(){
    cout << "Hello";
}
 
int main(){
    MyClass <int> test;
    test.foo();
    return 0;
}
Выдает ошибку компиляции
Сообщение об ошибке:
Код
||=== Build: Debug in template test (compiler: GNU GCC Compiler) ===|
D:\Programming\C++\Projects\template test\main.cpp|14|error: invalid use of incomplete type 'class MyClass<A>'|
D:\Programming\C++\Projects\template test\main.cpp|6|error: declaration of 'class MyClass<A>'|
||=== Build failed: 2 error(s), 0 warning(s) (0 minute(s), 0 second(s)) ===|
Что я делаю не так? Как правильно?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 22:25. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru