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

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

Восстановить пароль Регистрация
 
Rayzor92
14 / 14 / 1
Регистрация: 21.04.2012
Сообщений: 387
21.04.2012, 15:36     Переделать класс в шаблонный класс #1
Как данный процесс проделать?
Я попробовал так по синтаксису из учебника:
Код
#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;
}
Но в маине уже на функции суммы компилятор тормозит
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.04.2012, 15:36     Переделать класс в шаблонный класс
Посмотрите здесь:

C++ Шаблонный класс
C++ Шаблонный класс
Шаблонный класс C++
C++ Шаблонный класс
C++ Шаблонный класс shared_ptr
Шаблонный класс C++
C++ Шаблонный класс
C++ шаблонный класс

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
igorrr37
 Аватар для igorrr37
1593 / 1221 / 118
Регистрация: 21.12.2010
Сообщений: 1,868
Записей в блоге: 7
21.04.2012, 16:07     Переделать класс в шаблонный класс #2
так объяви
C++
1
void Sum(complex& A, complex& B)
и в std уже есть класс с именем complex
Rayzor92
14 / 14 / 1
Регистрация: 21.04.2012
Сообщений: 387
21.04.2012, 16:32  [ТС]     Переделать класс в шаблонный класс #3
у меня раньше так и было, а щас нужно шаблон из этого класса сделать. Нашёл вот такое решение, но не знаю то ли это?
Код
void Sum(complex<T> A, complex<T> B) {...} 
....
 complex <double> c1,c2;
 c1.Sum(c1,c2);
Yandex
Объявления
21.04.2012, 16:32     Переделать класс в шаблонный класс
Ответ Создать тему
Опции темы

Текущее время: 05:34. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru