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

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ безтиповые подпрограммы - функции http://www.cyberforum.ru/cpp-beginners/thread741104.html
Помогите написать программу. нужно вычислить суммы положительных элементов и количества отрицательных матрицы.
C++ составить программу ,в которой будут вводиться 7 строк таблицы Помогите пожалуйста! составить программу ,в которой будут вводиться 7 строк таблицы,образец которой приведен ниже и выводится на экран таблица- сразу же после ввода и сортировки ее по значениям первом столбце. Ведомость спортивных состязаний Фамилии участников Код команды кол-во баллов место в итоге Баландин С ... http://www.cyberforum.ru/cpp-beginners/thread741103.html
Дана матрица. Определить минимум среди сумм модулей элементов C++
Дана целочисленная квадратная матрица , определить минимум среди сумм модулей элементов диагоналей параллельных побочной диагонали матрицы.
C++ Определить минимальное значение среднего значения массива
Задание такое Определить минимальное значение Srmin = = min{Sr1, Sr2} среднего значения Sr1 массива xi и сред него значения Sr2 массива yi, i = 1, 2, 3. спасибо)
C++ Разобраться в параметрах rand() http://www.cyberforum.ru/cpp-beginners/thread741080.html
помогите разобраться пожалуйста) вот я в элемент массива возвращаю случайное число: a=n+(rand()%(n-n1+1)); это я сделал по аналогии : rand() % (max-min+1) + min помогите разобраться в параметрах) допустим я хочу чтобы функция генерировала двузначные числа ну и т.д. в msdn смотрел там только это описание( может я плохо смотрел))) подкиньте если можно ссылку на статейку, книжку или может...
C++ Вызов виртуального метода базового класса из указателя производного Допустим есть такой код: #include <iostream> class Base { public: virtual void f() { std::cout << "Base\n"; } }; подробнее

Показать сообщение отдельно
NewPirat
Сообщений: n/a
21.12.2012, 15:46     Шаблон класса
Пытаюсь освоить использование шаблонов класса. Не получается скомпилировать проект, если определение шаблона и main() находятся в разных файлах.
Вот так всё компилируется:

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
#include <string.h>
#include <iostream>
using namespace std;
 
template <class T>
class Array
{
private:
    T* mass;
    int n;
public:
    Array(T str);  
    ~Array(){delete [] mass;}   
};
 
template<class T>
Array<T>::Array(T str)
{
  
}
  
int main(){
    
    Array<int>tam(5);
    return 0;
}
Если же размещаю определение шаблона класса в файлах Array.h и Array.cpp, то вылезает ошибка компиляции:

shablon_classa.obj : error LNK2001: unresolved external symbol "public: __thiscall Array<int>::Array<int>(int)" (??0?$Array@H@@QAE@H@Z)
Debug/Exercise14_7.exe : fatal error LNK1120: 1 unresolved externals
Error executing link.exe.


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
// Array.h: interface for the Array class.
//
//////////////////////////////////////////////////////////////////////
 
#if !defined(AFX_ARRAY_H__6310F8A6_BD3D_4206_B391_9E2F29D84B1C__INCLUDED_)
#define AFX_ARRAY_H__6310F8A6_BD3D_4206_B391_9E2F29D84B1C__INCLUDED_
 
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
 
template <class T>
class Array
{
private:
    T* mass;
    int n;
public:
    Array(T str);  
    ~Array(){delete [] mass;}   
};
 
#endif // !defined(AFX_ARRAY_H__6310F8A6_BD3D_4206_B391_9E2F29D84B1C__INCLUDED_)
 
 
// Array.cpp: implementation of the Array class.
//
//////////////////////////////////////////////////////////////////////
 
#include "Array.h"
 
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
 
template<class T>
Array<T>::Array(T str)
{
  
}
 
#include <string.h>
#include <iostream>
using namespace std;
 #include "Array.h"
  
int main(){
    
    Array<int>tam(5);
    return 0;
}
Дело происходит в Microsoft Visual Studio 2005. Помогите исправить, уже долго мучаюсь. Вроде всё делаю правильно по синтаксису, как написано.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 21:39. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru