Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
racer888
0 / 0 / 0
Регистрация: 01.04.2013
Сообщений: 33
1

Перегрузка операций: friend-функция или функция-член класса

27.08.2015, 18:01. Просмотров 444. Ответов 1
Метки нет (Все метки)

Здравствуйте, меня интересует вопрос, в чем разница при перегрузке операторов через operator и friend. Вот к примеру такой код.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
class vek
{
public:
        struct
        {
            int x, y, z;
        };
vek() : x(0), y(0), z(0) {}
vek(int _x, int _y, int _z) : x(_x), y(_y), z(_z){}
friend vek operator+ (vek& v, vek& v1)
        {
            return vek(v1.x + v.x, v1.y + v.y, v1.z + v.z);
        }
    //---------------------------------------------------------------------------------------------
vek operator- (vek& v)
        {
            return vek(x - v.x, y - v.y, z - v.z);
};
        }
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.08.2015, 18:01
Ответы с готовыми решениями:

Перегрузка операторов, friend или нет friend?
Всем здравствуйте. Есть такой вопрос: при перегрузке операторов в классе(пусть будут + и = (вообще...

Сам вопрос: почему функция-член одного класса не вызывается из функции-члена другого класса?
//Щас всё объясню. Так, имеем два класса, в одном я определил функцию-член. Все конструкторы и...

Не функция-член класса
Фрагмент из книги, об дружественной функции operator<<: "Обратите внимание, что она не является...

Функция-член шаблонного класса
Как правильно объявить функцию-член шаблонного класса? Класс: template <class SType> class Set...

Член-функция класса не работает
Доброго вечера! Только что написал вот такой несложный класс, который определяет две характеристики...

1
zss
Модератор
Эксперт С++
7179 / 6678 / 4226
Регистрация: 18.12.2011
Сообщений: 17,622
Завершенные тесты: 1
27.08.2015, 21:04 2
На мой взгляд, в этом случае разница только в инкапсуляции.
Однако, иногда без friend не обойтись.
Например, нельзя сделать членом класса операции извлечения из потока и запись в поток,
т.к. слева от << стоит потоковая переменная, а не экземпляр класса.
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.08.2015, 21:04

Не срабатывает функция-член класса
Есть следующий код: #include &quot;stdafx.h&quot; #include &lt;Windows.h&gt; #include &quot;std_lib_facilities.h&quot; ...

Функция-член Ошибка класса
Непонятная ошибка связанная с функцией-членом. Я в панике + почему-то не могу внести хедер с...

Непонятно работает функция - член класса
Задача создать телефонный справочник с использованием бинарного дерева. Проблема возникает при...


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

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

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