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

Класс - C++

Восстановить пароль Регистрация
 
buritoz
 Аватар для buritoz
0 / 0 / 0
Регистрация: 13.12.2010
Сообщений: 47
18.04.2011, 21:31     Класс #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;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.04.2011, 21:31     Класс
Посмотрите здесь:

C++ Создать Класс Coins (монеты). Класс сохраняет массив из 3 монет ...
Иерархия геометрических объектов: клас точка->класс квадрат->класс прямоугольник C++
Создать класс Pair(пара чисел) и класс-наследник Fraction C++
C++ Класс домов и класс улиц для учета поступлений квартплаты. Массив
Разработать класс Man (человек) и производный класс Student (студент). Описать атрибуты. C++
Класс, производный класс, паблик-класс C++
Реализовать класс Goods используя для представления цены класс Money C++
C++ Ошибка в выводе данных, класс выводит правильно, а класс в классе - нет

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
silent_1991
Эксперт C++
4938 / 3014 / 149
Регистрация: 11.11.2009
Сообщений: 7,024
Завершенные тесты: 1
19.04.2011, 14:42     Класс #2
В данном контексте операция & означает, что объект передаётся в функцию по ссылке. Т.е. сам объект копироваться не будет, будет передан только адрес, и функция через ссылку c будет работать с фактическим объектом, который передаётся в функцию.
Вообще ссылки - это что-то наподобие указателей, но работать с ними проще, поскольку при инициализации ссылки не нужно брать адрес того объекта, которым инициализируешь ссылку, а при обращении к объекту нет необходимости в разыменоании.
Yandex
Объявления
19.04.2011, 14:42     Класс
Ответ Создать тему
Опции темы

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