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

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

Войти
Регистрация
Восстановить пароль
 
buritoz
0 / 0 / 0
Регистрация: 13.12.2010
Сообщений: 47
#1

Класс - C++

18.04.2011, 21:31. Просмотров 294. Ответов 1
Метки нет (Все метки)

Всем привет. Есть код "Класс комплексных чисел", сразу скажу что писал не я, но сижу в нём разбираюсь. Вопрос мой конечно супер нубский, так что помидорами не кидать))

Вопрос: что делает вот эта часть строчки complex operator +(complex& c)
а именно вот эта часть=======================>>complex& c



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
86
87
88
89
90
91
92
93
94
#include <iostream>
#include <iomanip>
#include <cmath>
#include <conio.h>
using namespace std;
 
class complex{
    private:
        float real; //Действительная часть
        float imag; //Мнимая часть
    public:
        complex(){};
        complex(float r){ // конструктор по умолчанию
            real=r;
            imag=0;
        }
        complex(float r,float i){ // конструктор по умолчанию
            real=r;
            imag=i;
        }
        
        complex(complex& c){ // конструктор копирования
            real=c.real;
            imag=c.imag;
        }
 
        ~complex(){}
 
        float abs(){ // Модуль комплексного числа
            return sqrt(real*real + imag*imag);
        }
 
        complex &operator =(complex& c){ // перегрузка оператора присваивания
            real=c.real;
            imag=c.imag;
            return(*this);
        }
        complex operator +(complex& c){ // перегрузка оператора сложения
            complex temp;
            temp.real=real+c.real;
            temp.imag=real+c.real;
            return temp;
        }
        complex operator -(complex& c){ // перегрузка оператора вычитания
            complex temp;
            temp.real=real-c.real;
            temp.imag=real-c.real;
            return temp;
        }
        complex operator * (complex& c) // перегрузка оператора умножения
        {
            complex temp;
            temp.real=real*c.real;
            temp.imag=imag*c.imag;
            return temp;
        }
 
        complex operator /(complex& c){ // перегрузка оператора деления
            complex temp;
            double r=c.real*c.real+c.imag*c.imag;
            temp.real=(real*c.real+imag*c.imag)/r;
            temp.real=(imag*c.real-real*c.imag)/r;
            return temp;
        }
        friend ostream &operator<<(ostream &,const complex &);
        friend istream &operator>>(istream &, const complex &);
};
 
ostream &operator<<(ostream& out, const complex& c){
    out << c.real;
    if(c.imag >0)
        out <<"+";
    out << c.imag << "i";
    return out;
    }
 
istream &operator>>(istream &in, const complex &c){
    in >> c.real >> c.imag;
    return in;
}
 
 
 
 
int main(){
    int a=10,b=12;
//    cin >> a;
//    cin >> b;
    complex value1(a,b);
    complex value2(5,-4);
    cout << value1*value2 << endl;
    getch();
    return 0;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.04.2011, 21:31
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Класс (C++):

Есть класс A и класс B, класс B вложен в класс A и вложен в него, как классу B получить доступ к переменным класса A просто по имени? - C++
На самом деле ничё фантастического я не прошу, ведь: template &lt;class T&gt; class matrix { friend class diagonal; ...

Класс таблиц баз данных и класс записей в таблице(реляционная таблица). Предусмотреть класс связей между таблицами - C++
Здравствуйте! Никак не могу продумать структуру этой программы. Проходим наследование, но я все равно не знаю, как его здесь применить. Как...

Отдельно класс данных, класс формул и главный класс - C++
Здравствуйте! У меня есть три вопроса. Первый вопрос. Скажите пожалуйста! Правильный ли это подход к созданию приложений :...

Реализовать класс родительский класс "Пара чисел" и класс-наследник "Комплексное число" - C++
Ткма работы создать класс pair (пара чисел); определить метод перемножения полей и операцию сложения пар (a,b)+(c,d) =(a+b,c+d)...

Класс, производный класс, паблик-класс - C++
Задание: Создать класс колесо, которое имеет радиус. Определить конструкторы и метод доступа. Создать класс машин, содержащий класс колесо....

Создать класс “Автомагазин”, состоящей из класса ”Марки машин”. Класс “Автомагазин ”:название магазина, адрес, телефон. Класс “ Марки машин ”: марка - C++
Создать класс “Автомагазин”, состоящей из класса ”Марки машин”. Класс “Автомагазин ”:название магазина, адрес, телефон. Класс “ Марки...

1
silent_1991
Эксперт С++
4987 / 3044 / 149
Регистрация: 11.11.2009
Сообщений: 7,027
Завершенные тесты: 1
19.04.2011, 14:42 #2
В данном контексте операция & означает, что объект передаётся в функцию по ссылке. Т.е. сам объект копироваться не будет, будет передан только адрес, и функция через ссылку c будет работать с фактическим объектом, который передаётся в функцию.
Вообще ссылки - это что-то наподобие указателей, но работать с ними проще, поскольку при инициализации ссылки не нужно брать адрес того объекта, которым инициализируешь ссылку, а при обращении к объекту нет необходимости в разыменоании.
2
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.04.2011, 14:42
Привет! Вот еще темы с ответами:

Абстрактный класс CGraphicsObject, его наследник - базовый класс CPoint, и класс - наследник от CPoint - C++
Всем доброй ночи! Очень нужна помощь и по мере возможности разъяснения на темы: абстрактный класс в задании(что он из себя представляет и...

Класс домов и класс улиц для учета поступлений квартплаты. Массив - C++
Задание: вырезано Файл StdAfx.h #pragma once #include &quot;targetver.h&quot; #include &lt;stdio.h&gt;

Ошибка в выводе данных, класс выводит правильно, а класс в классе - нет - C++
Неизвестная для меня проблема. Класс выводит данные правильно из Consigment, а вот третий экземпляр класса, работает не верно, если...

Создать класс Элемент списка (Node), а затем класс Список (List) - C++
Задание: Создать класс Элемент списка (Node), а затем класс Список (List). В зависимости от варианта список должен быть одно или...


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

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

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