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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
maxon887
 Аватар для maxon887
12 / 12 / 3
Регистрация: 05.06.2012
Сообщений: 280
#1

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

09.09.2012, 14:58. Просмотров 249. Ответов 4
Метки нет (Все метки)

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++] C++
C++ Вызов функций класса Dictionary функциями дружественного класса
C++ Статическое поле класса, имеющее тип того же класса
C++ Разное значение переменной класса, в разных экземплярах класса
Утилизация класса (размещение класса в другом файле) C++
C++ Не удается обратиться к свойству класса из метода класса
Нужен пример неизменяемого класса и класса от которого нельзя наследоваться C++
C++ Как дополнить функционал класса из другого класса
Составьте программу, выводящую на экран сообщения об отличниках класса, о средней успеваемости учащихся класса C++
Объявление объекта класса fstream в качестве статической компоненты другого класса C++
Бинарное дерево подклассов основного класса-узла. Доступ к подклассам по указателю - объекту класса-родителя C++
C++ Член класса управляемый не может относиться к типу класса неуправляемый

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
DU
1479 / 1055 / 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
1479 / 1055 / 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     Шаблонн класса
Ответ Создать тему
Опции темы

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