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

Шаблонн класса - C++

Восстановить пароль Регистрация
 
maxon887
 Аватар для maxon887
12 / 12 / 3
Регистрация: 05.06.2012
Сообщений: 280
09.09.2012, 14:58     Шаблонн класса #1
Array.h
C++
1
2
3
4
5
6
7
8
9
10
11
#ifndef ARRAY_H
#define ARRAY_H
template<class type>
class Array
{
public:
    Array();
    void func();
protected:
    int size;
};
Array.cpp
C++
1
2
3
4
5
6
#include "Array.h"
template<class type>
Array<type>::Array()
{
 
}
main.cpp
C++
1
2
3
4
5
6
7
8
#include <QtCore/QCoreApplication>
#include "Array.h"
int main(int argc, char *argv[])
{
    QCoreApplication app(argc, argv);
    Array<int> a;
    return app.exec();
}
не работает
пишет E:\Qt\array\main.cpp:6: error: undefined reference to `Array<int>::Array()'
Array.h
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#ifndef ARRAY_H
#define ARRAY_H
template<class type>
class Array
{
public:
    Array();
    void func();
protected:
    int size;
};
template<class type>
Array<type>::Array()
{
 
}
 
#endif // ARRAY_H
Array.cpp - нету
main.cpp - тот же
- работает
В чём ошибка?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.09.2012, 14:58     Шаблонн класса
Посмотрите здесь:

внук родительского класса не может работать с полями дедовского класса; почему? C++
Как получить private переменную класса, функцей членом другого класса C++
Использование объекта одного класса при создании нового класса C++
C++ Как правильно создать шаблон на функцию, которая использует вектор?
Как обраиться к функции класса через другую функцию класса (друга)? C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
DU
1477 / 1053 / 45
Регистрация: 05.12.2011
Сообщений: 2,279
09.09.2012, 15:01     Шаблонн класса #2
что-то очень много людей, кто шаблоны пишет сталкиваются с этим. неужели в книгах не пишут, что реализация шаблонов не должна выносится в cpp файлы, все (декларация и имплементация) должно быть в одном h файле.
maxon887
 Аватар для maxon887
12 / 12 / 3
Регистрация: 05.06.2012
Сообщений: 280
09.09.2012, 15:04  [ТС]     Шаблонн класса #3
не а, не пишут(((
а зачем так сделано?
DU
1477 / 1053 / 45
Регистрация: 05.12.2011
Сообщений: 2,279
09.09.2012, 15:06     Шаблонн класса #4
из-за их особенностей, механизма инстанцирования и прочее. за деталями лучше в какую-нибудь продвинутую литературу заглянуть. если пока не до этого, то придется запомнить как данное и смириться с этим
maxon887
 Аватар для maxon887
12 / 12 / 3
Регистрация: 05.06.2012
Сообщений: 280
09.09.2012, 15:10  [ТС]     Шаблонн класса #5
ну впринципе понятно
Yandex
Объявления
09.09.2012, 15:10     Шаблонн класса
Ответ Создать тему
Опции темы

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