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

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

Войти
Регистрация
Восстановить пароль
 
Rayzor92
14 / 14 / 1
Регистрация: 21.04.2012
Сообщений: 392
#1

Переделать класс в шаблонный класс - C++

21.04.2012, 15:36. Просмотров 776. Ответов 2
Метки нет (Все метки)

Как данный процесс проделать?
Я попробовал так по синтаксису из учебника:
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
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
#include <iostream>
#include <fstream>
 
 
 
using namespace std;
 
template <class T>
class complex
{
    public:
    T real;
    T image;
 
   complex() { this->real = 1; this->image = 1;  };     
   complex(T r, T i) { this->real = r; this->image = i; }   
 
 
    double vvod_chisel()
        {
            cout << "Vvedite destvitelnu chast" << endl;
            cin >> this->real;
            cout << "Vvedite mnimu chast" << endl;
            cin >> this->image;
            return this->real, this->image;
        };
 
    void Sum(T & A, T & B)
    {
 
         T i, j;
        i=A.real+B.real;
        j=A.image+B.image;
        cout << i << "+i" << j << endl;
    };
 
     void Razn(T &  A, T & B)
    {
         double i, j;
        i=A.real-B.real;
        j=A.image-B.image;
        cout << i << "+i" << j << endl;
    };
 
    void Umn (T & A, T & B)
    {
        double i, j;
        i = A.real * B.real - A.image * B.image;
        j = A.real * B.image + B.real * A.image;
        cout << i << "+i" <<j << endl;
    };
 
    void Delenie(T & A, T & B)
    {
        double k, i, j;
        k = A.real * A.real + A.image * A.image;
        i = (B.real * A.real + B.image * A.image) / k;
        j = (A.real * B.image - B.real * A.image) / k;
        cout << i << "+i" << j << endl;
    };
 
       ~complex() {
       FILE * fo;
    fo = fopen("com.txt","a");
    fprintf( fo, "%lg", this->real );
    fprintf( fo, "+i %lg\n", this->image );
    fclose(fo);
        };
 
 
};
 
int main()
{
    complex<double> c1;
    complex<double> c2;
    c1.vvod_chisel();
    c2.vvod_chisel();
   c1.Sum(c1,c2);
    c1.Razn(c1,c2);
      c1.Umn(c1,c2);
      c1.Delenie(c1,c2);
      system ("pause");
    return 0;
}
Но в маине уже на функции суммы компилятор тормозит
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.04.2012, 15:36
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Переделать класс в шаблонный класс (C++):

Переделать под шаблонный класс - C++
есть код рабочий код, нужно сделать класс массив шаблонным, почитала теорию и не смогла разобраться #include &quot;stdafx.h&quot; #include...

Класс Matrix: реализовать шаблонный класс для двумерных массивов - C++
Доброго времени суток. У меня вопрос: я создал класс Array со внутренним динамическим массивом и объекты этого типа смог создать и я ими...

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

Шаблонный класс - C++
Ребят, прошу Вашей помощи.. Программу я написала.. Она работает. Но теперь мне нужно переделать ее , используя шаблонный класс. Я...

Шаблонный класс - C++
Подскажите как указать реализацию методов для шаблонного класса template &lt;class T_machine&gt; class hospital_room { ...

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

2
igorrr37
1648 / 1276 / 133
Регистрация: 21.12.2010
Сообщений: 1,932
Записей в блоге: 7
21.04.2012, 16:07 #2
так объяви
C++
1
void Sum(complex& A, complex& B)
и в std уже есть класс с именем complex
0
Rayzor92
14 / 14 / 1
Регистрация: 21.04.2012
Сообщений: 392
21.04.2012, 16:32  [ТС] #3
у меня раньше так и было, а щас нужно шаблон из этого класса сделать. Нашёл вот такое решение, но не знаю то ли это?
C++
1
2
3
4
void Sum(complex<T> A, complex<T> B) {...} 
....
 complex <double> c1,c2;
 c1.Sum(c1,c2);
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.04.2012, 16:32
Привет! Вот еще темы с ответами:

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

Шаблонный класс - C++
#include &lt;iostream&gt; using namespace std; template &lt;class T&gt; class Vector{ private: int size, capacity; T* data; public: ...

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

Шаблонный класс - C++
Как его реализовать??? Смысл я понимаю, но вот как записать...не знаю:cry:


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

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