Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 19.11.2014, 17:48   #1
Otar4ik
Форумчанин
 
Регистрация: 16.04.2010
Сообщений: 123
По умолчанию Класс Complex.Извлечение и помещение в поток.

Дано такое задание
Создать класс представляющий понятие комплексных чисел с переопределёнными операциями сложения,вычитания,помещения в стандартный поток вывода,извлечения из стандартного потока ввода.

Сделал)
А теперь вопрос правильно я реализовал его?

Код:
#include "stdafx.h"
#include <iostream>
#include <conio.h>
#include <math.h>
#include <stdio.h>

using namespace std;

class Complex 
{
	double Re,Im;
public:
	Complex() {}
	Complex(double a, double b)
	{ 
		Re=a; 
		Im=b;
	}
	
friend ostream &operator<<(ostream &stream, Complex obj );
friend istream &operator>>(istream &stream, Complex &obj);
Complex operator+(Complex ob);
Complex operator++();
Complex operator-(Complex ob);
Complex operator--();
};
// вывод 
ostream &operator<<(ostream &stream, Complex obj)
{
stream << obj.Re << ", ";
stream << obj.Im << ", ";
return stream; // возврат потока
}
// получение значений 
istream &operator>>(istream &stream, Complex &obj)
{
cout << "Введите комплексное число: ";
stream >> obj.Re >> obj.Im;
return stream;
}

Complex Complex::operator+(Complex ob)
{
Complex temp;
temp.Re=ob.Re+Re;
temp.Im=ob.Im+Im;
return temp;
}

// перегрузка префиксного инкремента "++" для класса Complex
Complex Complex::operator++()
{
Re++;
Im++;
return *this; //возврат объекта, генерирующего вызов
}

Complex Complex::operator-(Complex ob)
{
Complex temp;
temp.Re=ob.Re-Re;
temp.Im=ob.Im-Im;
return temp;
}

// перегрузка префиксного декремента "--" для класса Complex
Complex Complex::operator--()
{
Re--;
Im--;
return *this; //возврат объекта, генерирующего вызов
}
	
int _tmain(int argc, _TCHAR* argv[])
{
setlocale(LC_ALL,"Russian");
Complex ob1(10,5), ob2(7,11);
cout << ob1;
cin >> ob1;
ob1=ob1+ob2;
cout<<ob1<<endl;
ob1=ob1-ob2;
cout<< ob1<<endl;
ob2--;
cout<<ob2<<endl;
system("pause");
return 0;
}
Otar4ik вне форума Ответить с цитированием
Старый 19.11.2014, 19:06   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Так а запуск что дает?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 19.11.2014, 20:55   #3
Otar4ik
Форумчанин
 
Регистрация: 16.04.2010
Сообщений: 123
По умолчанию

Подправили а результаты на выходе внизу.

Код:
#include "stdafx.h"
#include <iostream>
#include <math.h>

using namespace std;

class Complex {
    double Re;
    double Im;
public:
    Complex(): Re(), Im()
    {}
    Complex(double a, double b): Re(a), Im(b)
    {}
 
    friend ostream &operator<<(ostream &stream, const Complex& obj );
    friend istream &operator>>(istream &stream, Complex &obj);
 
    Complex operator+(const Complex& ob);
    Complex operator-(const Complex& ob);
};
// вывод
ostream &operator<<(ostream &stream, const Complex& obj)
{
    stream << "(" << obj.Re << ", ";
    stream << obj.Im << ")";
    return stream; // возврат потока
}
// получение значений
istream &operator>>(istream &stream, Complex &obj)
{
    //cout << "Введите комплексное число: ";
    stream >> obj.Re >> obj.Im;
    return stream;
}
 
Complex Complex::operator+(const Complex& ob) {
    Re +=ob.Re;
    Im +=ob.Im;
    return *this;
}
 
Complex Complex::operator-(const Complex& ob) {
    Re=ob.Re;
    Im=ob.Im;
    return *this;
}


int _tmain(int argc, _TCHAR* argv[])
{
	setlocale(LC_ALL,"Russian");
	Complex ob1(1, 2), ob2(2, 3);
    cout << ob1;
    cout << endl;
    cin >> ob1;
    ob1 = ob1 + ob2;
    cout << ob1 << endl;
    ob1 = ob1 - ob2;
    cout << ob1 << endl;
    //ob2--;
    cout << ob2 << endl;
	system("pause");
	return 0;
}
Изображения
Тип файла: jpg Безымянный333333.jpg (44.8 Кб, 143 просмотров)
Otar4ik вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Создать класс Complex Anastasia2012 Помощь студентам 2 10.12.2012 18:20
Класс запускает поток, который заполняет этот класс. Обмен класс <=> поток. Человек_Борща Общие вопросы Delphi 8 27.02.2012 23:24
Разработать класс Complex frixer Помощь студентам 0 03.05.2011 19:12
Помещение переменных сессии в класс. Яр|/||< (^_^) PHP 9 30.06.2010 13:01
Освободить поток. Нужно удалить 1 событие и 1 класс TwiX Общие вопросы Delphi 3 26.04.2010 02:23