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

Программа не компилируется при перестановке прототипов шаблонных функций - C++

Восстановить пароль Регистрация
 
v.a.l.i.d
 Аватар для v.a.l.i.d
412 / 377 / 10
Регистрация: 21.09.2012
Сообщений: 913
07.01.2013, 22:27     Программа не компилируется при перестановке прототипов шаблонных функций #1
Если переставить местами прототипы функций то программа не скомпилируется. Почему?
В первой все хорошо, а вторая не компилируется только из-за того, что переставил местами функции Swap.

1.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#include "stdafx.h"
#include "iostream"
using namespace std;
 
struct Job
{
    char name[40];  
    double salary;      
    int floor;          
};
 
template <typename t>
void Swap(t &a, t &b);
 
template <>
void Swap<Job>(Job &j1, Job &j2);
 
int _tmain(int argc, _TCHAR* argv[])
{
 
    
 
    system("pause");
    return 0;
}

// -------------------------------------------------------------

2.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#include "stdafx.h"
#include "iostream"
using namespace std;
 
struct Job
{
    char name[40];  
    double salary;      
    int floor;          
};
 
template <>
void Swap<Job>(Job &j1, Job &j2);
 
template <typename t>
void Swap(t &a, t &b);
 
int _tmain(int argc, _TCHAR* argv[])
{
 
    
 
    system("pause");
    return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.01.2013, 22:27     Программа не компилируется при перестановке прототипов шаблонных функций
Посмотрите здесь:

C++ Использрвание шаблонных функций( на C++
C++ вопрос по поводу Функций прототипов
Перегрузка шаблонных функций C++
C++ Дан массив из прототипов функций или указателей на функцию, сделать функцию, возвращающую этот массив
Использование шаблонных функций C++
C++ Отделить описание шаблонных функций и классов от реализации
C++ При создании класса матрицы не компилируется программа
Переделать код с помощью шаблонных функций C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
OhMyGodSoLong
~ Эврика! ~
 Аватар для OhMyGodSoLong
1234 / 983 / 42
Регистрация: 24.07.2012
Сообщений: 2,002
07.01.2013, 22:32     Программа не компилируется при перестановке прототипов шаблонных функций #2
Если переставить местами определения классов, то программа не скомпилируется. Почему?
В первой все хорошо, а вторая не компилируется только из-за того, что перенёс определение предка после наследника.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
struct Job
{
    char name[40];  
    double salary;      
    int floor;          
};
 
struct Bork : Job
{
    float zog;
};
 
int main()
{
    Bork foo;
}
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
struct Bork : Job
{
    float zog;
};
 
struct Job
{
    char name[40];  
    double salary;      
    int floor;          
};
 
int main()
{
    Bork foo;
}
Метафора понятна?
v.a.l.i.d
 Аватар для v.a.l.i.d
412 / 377 / 10
Регистрация: 21.09.2012
Сообщений: 913
07.01.2013, 22:43  [ТС]     Программа не компилируется при перестановке прототипов шаблонных функций #3
Цитата Сообщение от ~OhMyGodSoLong~ Посмотреть сообщение
Метафора понятна?
Да, теперь все понятно. Спасибо
Хороший пример со структурами
Yandex
Объявления
07.01.2013, 22:43     Программа не компилируется при перестановке прототипов шаблонных функций
Ответ Создать тему
Опции темы

Текущее время: 15:17. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru