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

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

Войти
Регистрация
Восстановить пароль
 
dev.nikor
25 / 26 / 1
Регистрация: 26.07.2010
Сообщений: 297
#1

Не могу объявить шаблонный класс - C++

27.05.2013, 17:33. Просмотров 277. Ответов 3
Метки нет (Все метки)

Здравствуйте, имеется шаблонный класс динамического массива:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
template<typename T>
class DynamicArray {
public:
    DynamicArray(int size);
    ~DynamicArray();
    void Add(T element);
    T Get(int index);
    void Resize(int newSize);
    void Show();
private:
    T* _box;
    int _currentSize;
    int _currentPosition;
};
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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
#include "DynamicArray.h"
 
template<typename T>
DynamicArray<T>::DynamicArray(int size) {
    _box = new T[size];
    _currentSize = size;
    _currentPosition = 0;
}
 
template<typename T>
DynamicArray<T>::~DynamicArray() {
    delete[] _box;
}
 
template<typename T>
void DynamicArray<T>::Add(T element) {
    if(_currentPosition >= _currentSize)Resize(_currentSize * 2);
    _box[_currentPosition] = element;
}
 
template<typename T>
T DynamicArray<T>::Get(int index) {
    if(index < 0 || index >= _currentSize) throw "Out of bounds";
    return _box[index];
}
 
template<typename T>
void DynamicArray<T>::Resize(int newSize) {
    T* tempBox = new T[newSize];
    std::copy(_box, _box + _currentSize, tempBox);
    delete[] _box;
    _box = tempBox;
    _currentSize = newSize;
}
 
template<typename T>
void DynamicArray<T>::Show() {
    for(int i = 0; i < _currentSize; i++)std::cout << _box[i] < " ";
    std::cout << std::endl;
}
Когда я его компилирую с пустой функцией main, то всё нормально компилируется, но если я в main пишу
C++
1
DynamicArray<int> a(10);
то получаю ошибку линковщика. Скажите пожалуйста, что я делаю не так?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.05.2013, 17:33     Не могу объявить шаблонный класс
Посмотрите здесь:

Переделать класс в шаблонный класс - C++
Как данный процесс проделать? Я попробовал так по синтаксису из учебника: #include &lt;iostream&gt; #include &lt;fstream&gt; using...

шаблонный класс - C++
реализован согласно &quot;Создание конструкторов и деструктора&quot; на шаблон класса с параметром -Тип данных в файле, редактируется (байт / слово /...

Разработать шаблонный класс Stack - C++
На С++ разработать шаблонный класс Stack (стек)для представления одномерных динамических массивов. Класс должен обеспечивать хранение...

Шаблонный класс целочисленный массив - C++
Доброе утро. Не спалось, решил пошаманить. Нашел задачку, которая заинтересовала, так как с таким не сталкивался раньше. Необходимо...

Шаблонный класс, ошибка линковки - C++
Всем добрый день, возникла такая ошибка, когда создаю объект класса в функции мэин то линковщик начинает ругатся, посмотрите пожалуйста...

Лямбда-выражение и шаблонный класс - C++
Здравствуйте, у меня есть класс. Как мне использовать лямбда-выражение внутри этого класса? template &lt;class L&gt; class...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
DiffEreD
1429 / 766 / 95
Регистрация: 21.06.2011
Сообщений: 1,740
Записей в блоге: 2
27.05.2013, 17:45     Не могу объявить шаблонный класс #2
Определения методов шаблонного класса должны быть в том же файле что и объявления этого класса.
dev.nikor
25 / 26 / 1
Регистрация: 26.07.2010
Сообщений: 297
27.05.2013, 17:48  [ТС]     Не могу объявить шаблонный класс #3
yuron_477, в заголовочном файле?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.05.2013, 17:52     Не могу объявить шаблонный класс
Еще ссылки по теме:

шаблонный вложенный класс в .cpp - C++
Привет всем! есть шаблонный вложенный класс . template&lt;typename FinalVertex&gt; class BFSVisitor : boost::default_bfs_visitor { ...

Шаблонный динамический класс DynArr - C++
Создать шаблонный динамический класс DynArr для работы с одномерными массивами. Осуществить перегрузки символов операций: «=« -...

Реализовать шаблонный класс property - C++
Необходимо реализовать шаблонный класс property, реализующийся на С++ станд. средствами вообще не знаю как делать(((

Написать шаблонный класс array - C++
Написать шаблонный класс: Помогите пожалуйста с этим заданием template&lt;classT&gt; class Array { public: Array(int = 10);...


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

Или воспользуйтесь поиском по форуму:
stima
457 / 306 / 24
Регистрация: 22.03.2011
Сообщений: 995
Завершенные тесты: 2
27.05.2013, 17:52     Не могу объявить шаблонный класс #4
В данном случае да.
Yandex
Объявления
27.05.2013, 17:52     Не могу объявить шаблонный класс
Ответ Создать тему
Опции темы

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