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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 20.05.2012, 12:38   #1
сега21
Новичок
Джуниор
 
Регистрация: 20.05.2012
Сообщений: 2
По умолчанию перегрузка операторов

В классе Complex из примера 6 выполнить перегрузку указанного оператора и реализовать соответствующий метод
Пример 6.
Код:
#include<stdio.h>
#include<iostream.h>
#include<conio.h>

class Complex
{
	double Re;
	double Im;
public:
	Complex();
	Complex(double Re_,double Im_);
	Complex Add(Complex Num1,Complex Num2);
	void PrintComplex();
					//Оба аргумента комплексные числа:
	friend const Complex operator+(const Complex& left, const Complex& right);
			//Левый аргумент комплексное число, правый действительное число
	friend const Complex operator+(const Complex& left, const double& right);
			//Левый аргумент действительное число, правый комплексное число 
	friend const Complex operator+(const double& left, const Complex& right);
};

Complex::Complex()
{

	Re=0;
	Im=0;
};
Complex::Complex(double Re_,double Im_)
{
	Re=Re_;
	Im=Im_;
};
Complex Complex::Add(Complex Num1,Complex Num2)
{
	Complex tmp(Num1.Re+Num2.Re,Num1.Im+Num2.Im);
	return tmp;
};
void Complex::PrintComplex()
{
	if (Im<0)
	printf("%lf %lf*i \n",Re,Im);
	else
	printf("%lf +%lf*i \n",Re,Im);
};
const Complex operator+(const Complex& left, const Complex& right) 
{
	return Complex(left.Re + right.Re, left.Im + right.Im);
}
const Complex operator+(const Complex& left, const double& right) 
{
	return Complex(left.Re + right, left.Im );
}
const Complex operator+(const double& left, const Complex& right) 
{
	return Complex(left + right.Re,  + right.Im);
}
void main()
{
	Complex a(1,2);
	a.PrintComplex();
	Complex b(4,6);
	b.PrintComplex();
	Complex c=c+b;		//Оба аргумента – объекты типа Complex
	c.PrintComplex();
	double a1=5;
	Complex d=a1+a;		//Левый аргумент имеет тип double, правый - тип Complex
	d.PrintComplex();
	getch();
}
метод(Методы, возвращающие реальную и мнимую части комплексного числа)

Последний раз редактировалось Stilet; 20.05.2012 в 13:21.
сега21 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
перегрузка операторов vanek1 Помощь студентам 0 16.05.2011 23:34
Перегрузка операторов Leo_ня Общие вопросы C/C++ 7 10.04.2011 15:52
Перегрузка операторов. Macb3th Общие вопросы C/C++ 5 01.04.2010 21:14
Перегрузка операторов (С++) Перчитель Помощь студентам 1 03.12.2008 18:46
Перегрузка операторов, Организация перегрузки операторов chagin_yav Помощь студентам 2 12.05.2008 09:15