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

Специализация шаблона - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Ввести квадратную матрицу целых чисел*. Элементы матрицы, которые не попадают в интервал [a,b] записать в отдельный вектор (массив) http://www.cyberforum.ru/cpp-beginners/thread788537.html
Парни, помогите пожалуйста сложить программку вот с таким условием: Ввести квадратную матрицу целых чисел*. Элементы матрицы, которые не попадают в интервал записать в отдельный вектор (массив)....
C++ Исключение Здравствуйте, помогите вставить в эту задачу исключения (числа не должны быть меньше равны 0). Задание вроде и не сложное но при использовании структуры вылетает куча ошибок. Подскажите пожалуйста. ... http://www.cyberforum.ru/cpp-beginners/thread788535.html
Обращение к цифре числа если число представленно не массивом C++
Компания хочет передавать данные по телефону, но она обеспокоена возможностью телефонного перехвата. Все передаваемые данные являются четырехзначными целыми числами. Компания попросила вас написать...
C++ Количество цифр в факториале
Найти количество цифр в записи факториала натурального числа N. Не дружу с длинной арифметикой. Ограничение - факториал 1000000 за 5 секунд!!! Как это можно?
C++ Длинна текста из файла http://www.cyberforum.ru/cpp-beginners/thread788508.html
Как прочитать из файла текст заданной/произвольной длины?
C++ как запрограмировать система из 2 уравнений Arr={0, -1, 1, -1}; vec={x,y}; b ={-0.5, 0.5}; Как решить систему на С++ Arr*vec=b; тоисть нужно найти x и y. подробнее

Показать сообщение отдельно
kebal
9 / 9 / 0
Регистрация: 02.11.2012
Сообщений: 153

Специализация шаблона - C++

17.02.2013, 19:15. Просмотров 1139. Ответов 10
Метки (Все метки)

Пытаюсь специализировать шаблон для типа float, но не получается. В чем проблема?
Компилятор:
1>TemplateArr.obj : error LNK2005: "public: __thiscall Array<float>::Array<float>(int)" (??0?$Array@M@@QAE@H@Z) уже определен в Array.obj
1>TemplateArr.obj : error LNK2005: "public: __thiscall Array<float>::~Array<float>(void)" (??1?$Array@M@@QAE@XZ) уже определен в Array.obj
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
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
#pragma once
 
template <class T>
class Array
{
public:
    Array(int = 10);
    T &getElement(int);
    ~Array(void);
private:
    T *ptr;
};
 
template <class T>
Array<T>::Array(int size)
{
    ptr = new T[size];
    for (int i = 0; i < size; i++)
        ptr[i] = 0;
}
 
template <class T>
Array<T>::~Array(void)
{
    delete [] ptr;
}
 
template <class T>
T &Array<T>::getElement(int number)
{
    return ptr[number];
}
 
 
//тут начинается специализация
template <>
class Array<float>
{
    public:
    Array(int = 10);
    float &getElement(int);
    ~Array(void);
    private:
        float *ptr;
};
 
Array<float>::Array(int number)
{
    ptr = new float[number];
}
 
Array<float>::~Array(void)
{
    delete [] ptr;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru