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

Почему работает присваивание - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Как организовать цикл здесь? http://www.cyberforum.ru/cpp-beginners/thread915613.html
Всем привет! Мне надо посчитать с помощью цикла выражение типа: \sqrt{3 + \sqrt{3 + ...\sqrt{3}}} (n корней, n - с клавиатуры). Я не совсем понимаю, как это запрограммировать. При маленьких n (пусть n = 2) - можно руками: double func(int n)
C++ Бинарные деревья. Напечатать все элементы дерева Т по уровням Всем привет. Помогите написать программу или хотя бы функцию, условие следующее: Напечатать все элементы дерева Т по уровням, сначала из корня дерева, затем (слева направо) - из вершин, дочерних по отношению к корню и т.д. Заранее спасибо. http://www.cyberforum.ru/cpp-beginners/thread915596.html
C++ Найти корень уравнения методом касательных
Найти корень уравнения методом касательных x^2-1/2=0
Найти корень уравнения методом половинного деления C++
Найти корень уравнения методом половинного деления x^2-1/2=0
C++ Отделить корень уравнения http://www.cyberforum.ru/cpp-beginners/thread915548.html
Отделить корень уравнения x^2-1/2=0
C++ При вводе слова выводится результат сколько в нем переходов от гласных к согласным и наоборот Требуется написать программу в которой будет 2 функции( мейн и ,,,) в которой при ввовде слова будет вовдится результат сколько в нем переходов от гласных к согласным и наоборот. Очень надо подробнее

Показать сообщение отдельно
Simpson_
15 / 15 / 3
Регистрация: 06.02.2013
Сообщений: 55

Почему работает присваивание - C++

01.07.2013, 11:42. Просмотров 334. Ответов 6
Метки (Все метки)

Пример из книги.

Немогу понять, почему работает присваивание в main.cpp, ведь оператор = не перегружен?!?!

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
//Complex.h
#ifndef COMPLEX_H
#define COMPLEX_H
 
#include <iostream>
using std::ostream;
using std::istream;
 
class Complex
{
        friend ostream &operator<<(ostream &, const Complex &);
        
    public:
        Complex (double = 0.0, double = 0.0);
        Complex operator+(const Complex &) const;
        Complex operator-(const Complex &) const;   
        void print() const;
    private:
        double real;
        double imaginary;       
};
#endif
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
//Complex.cpp
#include <iostream>
using std::cout;
 
#include "Complex.h"
 
Complex::Complex(double realPart, double imaginaryPart) : real(realPart), imaginary(imaginaryPart)
{
}
 
Complex Complex::operator+(const Complex &operand2) const
{
    return Complex(real+operand2.real, imaginary+operand2.imaginary);
}
 
Complex Complex::operator-(const Complex &operand2) const
{
    return Complex(real-operand2.real, imaginary-operand2.imaginary);
}
 
ostream &operator<<(ostream &output, const Complex &s)
{
    output<<'('<<s.real<<((s.imaginary<0) ? " - j" : " + j")<<s.imaginary<<')';
    
    return output;
}
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
//main.cpp
#include <iostream>
using std::cout;
using std::endl;
using std::boolalpha;
 
#include "Complex.h"
 
int main()
{
    Complex x;
    Complex y(4.3, 8.2);
    Complex z(3.3, -1.1);
    
    x=y+z;                                         //почему это работает???
    cout<<"\n\nx = y + z: "<<endl;
    cout<<x;
    cout<<" = ";
    cout<<y;
    cout<<" + ";
    cout<<z;
    
    return 0;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 02:14. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru