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

Использование шаблонов - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Библиотеки http://www.cyberforum.ru/cpp-beginners/thread694407.html
Я начал изучать C++ и сразу столкнулся с проблемой, скачать компилято wxDev-c++ написал #include <iostream.h>int main() { cout << " hi C++!"; } И мне пишет что не находит...
C++ Вычислить выражение Помогите,пожалуйста http://www.cyberforum.ru/cpp-beginners/thread694398.html
C++ Центральное столкновение шаров
Здравствуйте! Написал программу для центрального столкновения двух шаров...но программа выполняется некорректно....подскажите, что не так вот код: const int dt = 1; void BallDraw (double x,...
C++ Из файла в структуру
как этот код: for (i = 0; i < N; i++) // Читаем информацию из файла { fscanf(f1,"%s\n",&Minfo.Family); fscanf(f1,"%d\n",&Minfo.Age); fscanf(f1,"%f\n",&Minfo.Weight); } переписать на С++,...
C++ Определить, каким днем недели является введенное число http://www.cyberforum.ru/cpp-beginners/thread694362.html
Добрый день помогите пожалуйста написать программу: 1) Составить программу, определяющую каким днем недели является введенное число, если известно, каким днем недели был первый день месяца.
C++ visual studio 2012 - ошибка "переопределение типа" имею head.h #include <stdio.h> #include <iostream> #include <Windows.h> #pragma comment(lib, "ws2_32") using namespace std; подробнее

Показать сообщение отдельно
AnopT
0 / 0 / 0
Регистрация: 11.11.2012
Сообщений: 8

Использование шаблонов - C++

11.11.2012, 11:35. Просмотров 639. Ответов 12
Метки (Все метки)

Здравствуйте, пытаюсь набросать элементарный пример шаблона в Visual Studio 12 и получаю ошибку компилятора:

error LNK2001: неразрешенный внешний символ ""class Derive<double> __cdecl operator-(class Derive<double> const &,class Derive<double> const &)" (??G@YA?AV?$Derive@N@@ABV0@0@Z)"

код программы:
C++
1
2
3
4
5
6
7
8
9
10
11
12
#include <math.h>
#include <stdlib.h>
#include "test.h"
using namespace std;
 
void main()
{
    Derive<double> C1(1.0);
    Derive<double> C4(4.0);
    Derive<double> X;
    X = C1 - C4;
}
код файла test.h
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
ifndef DERIVE_H
#define DERIVE_H
 
#include <iostream>
#include <math.h>
using namespace std;
 
template <class T> class Derive
{
   private:
      // Поля данных
      T u, du;
 
      //Закрытый конструктор
      Derive(const T,const T);
 
   public:
      //Конструкторы
      Derive();
      Derive(const T);
      Derive(const Derive<T>&);
      friend Derive<T> operator - (const Derive<T>&, const Derive<T>&);
};
template <class T> Derive<T>::Derive() : u(T(0)),du(T(1)) {}
 
template <class T> Derive<T>::Derive(const T v) : u(v),du(T(0)) {}
 
template <class T> Derive<T>::Derive(const T v,const T dv) : u(v),du(dv) {}
 
template <class T> Derive<T>::Derive(const Derive<T> &r) : u(r.u),du(r.du) {}
 
template <class T> Derive<T> operator - (const Derive<T> &x,const Derive<T> &y)
{ return Derive<T>(x.u-y.u,x.du-y.du); }
#endif
Файл test.h добавлен в проект в раздел Header Files.
Собственно вопрос, что я делаю не так?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru