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

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

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

Класс - C++

18.04.2011, 21:31. Просмотров 287. Ответов 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++
Задание: Создать класс колесо, которое имеет радиус. Определить конструкторы и метод доступа. Создать класс машин, содержащий класс колесо....

Иерархия геометрических объектов: клас точка->класс квадрат->класс прямоугольник - C++
Иерархия геометрических объектов: класс точка-&gt;класс квадрат-&gt;класс прямоугольник. Построить эту иерархию наследованием.. Прошу помочь -...

Класс: как обратиться к методу производного класса через итератор на базовый класс? - C++
Есть абстрактный и два порожденных. Хочу создать например list&lt;Base*&gt; list1; затем добавляю себе в список: ...

Класс Quadrangle (четырехугольник). Класс хранит Декартовы координаты четырех углов четырехугольника - C++
Класс Quadrangle (четырехугольник). Класс хранит Декартовы координаты четырех углов четырехугольника. Конструктор принимает четыре группы...

Разработать класс Tableware (посуда) и производный класс Dish (тарелка). Описать атрибуты - C++
Разработать класс Tableware (посуда) и производный класс Dish (тарелка). Описать атрибуты.

С++ класс (создайте класс с именем Complex для выполнения в арифмитических операий с комплексными числами)) - C++
Кто сможет помогите пожалуйста! (Класс Complex). Создайте класс с именем Complex для выполнения в арифмитических операий с...

Наследование: базовый класс Квадрат, производный класс Пирамида - C++
Помогите, пожалуйста!:cry: Добавлено через 6 минут Создать класс КВАДРАТ, член класса- длинна стороны. Предусмотреть в классе методы...

Указатели в базовом классе на базовый класс и производный класс - C++
Пишу контейнер &quot;Бинарное дерево поиска&quot; для частотного словаря. С самим контейнером особо вопросов нету. Вопрос по поводу элементов в...

Создать базовый класс Triad и производный класс vector3D - C++
Помогите пожалуйста с заданием. Часть кода(vector3D) сделал, вроде работает Нужно помочь с классом Triad. Вот полное задание: ...

Создать базовый класс Тройка_чисел (Triad) и производный класс Time с полями часы, минуты и секунды - C++
Наследование. Виртуальныефункции.Полиморфизм. 1. Цельзадания: 1) Создание консольного приложения, состоящего и - Базовый класс:...


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

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

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