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

Дружественные функции - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Пузырьковая сортировка. Не понимаю как работает программа http://www.cyberforum.ru/cpp-beginners/thread923486.html
Есть программа, которая использует пузырьковую сортировку. Не могу понять как она работает начиная с 50 строки. Зачем там конструкции if и как работают функции ascending и descending? В чём разница между int (*compare)(int, int) и int *compare(int, int)? В книге есть объяснение, но в чём принципиальна разница так и не понял. #include <iostream> #include <iomanip> using namespace std; ...
C++ Размер стека Как узнать, какой размер размер стека использовала программа? Например, вот эта: #include <iostream> void print_seq(int x) { if (!x) return; print_seq(x-1); std::cout << x << " "; } http://www.cyberforum.ru/cpp-beginners/thread923485.html
Непонятное поведение list, vector в другом классе C++
Салют. class _auxObserver { --- list<gmObjBase*> mObservedObj; vector<int> b; public: _auxObserver();
Программы - оценка труда C++
Каким образом оценивают стоимость программы? хоть как-то примерно. По сути можно продать Hello World прогармму за 100 долларов при сильном желании) Но в действительности, по каким критерия оценивается?
C++ new и delete http://www.cyberforum.ru/cpp-beginners/thread923428.html
Ошибка, незнаю как для моего класса выделить память. Как исправить? class MyClass { int a, b, c; public: MyClass(int a, int b, int c) }
C++ Ошибка в решении задачи "Судоку" (acmp) Здравствуйте. Судоку размера n называется квадрат со стороной n2, разделенный на n2 средних квадратов со стороной n, каждый из которых разделен на n2 маленьких квадратов. В каждом маленьком квадрате записано число от 1 до n2. Судоку называется правильным, если в каждом столбце, каждой строке и каждом среднем квадрате встречаются все числа от 1 до n2. Недавно Вася нарисовал Судоку... подробнее

Показать сообщение отдельно
Ilot
Модератор
Эксперт С++
1767 / 1142 / 223
Регистрация: 16.05.2013
Сообщений: 3,020
Записей в блоге: 5
Завершенные тесты: 1
16.07.2013, 08:37  [ТС]     Дружественные функции
Цитата Сообщение от lazybiz Посмотреть сообщение
Просто мне кажется от этого нет никакой практической пользы (от friend), хотя, могу и ошибаться...
Хорошо оставим перегрузку оператора +:
C++
1
2
3
4
5
6
7
8
9
10
11
    Distance operator+ (Distance d)
    {
        int f = feet + d.feet;
        float in = inches + d.inches;
        if (in >= 12.0)
        {
            in -=12.0;
            f++;
        }
        return Distance(f, in);
    }
Что будет если выполнить эти действия?:
C++
1
2
3
4
5
    d3 = d1 + 10.0;
    cout << "\nd3 = "; d3.showdist();
 
    d3 = 10.0 + d1;
    cout << "\nd3 = "; d3.showdist();
Это как называется:
C++
1
2
3
4
5
class Distance {
    ...
    friend Distance operator+ (Distance, Distance);
    ...
}
Если думаете, что это перегрузка операции + то сильно заблуждаетесь так как эта функция не является методом класса и осуществляет доступ к скрытым полям класса по механизму дружественных функций, а не как метод.
Так что идите учите русский язык, а заодно и с++.
 
Текущее время: 04:54. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru