ооп с++ внешняя функция

C++ ООП

Что такое внешняя функция в ООП ? чем она отличается от других функций?
Класс
{
Класс & operator+(double p);
↑ Тип ↑
}
Тип Класс: operator +(double p){Операторы} это не внешняя функция, это определение класса за пределами класса!
Тип operator +(double p,Класс &c) а вот это внешняя функция , только вот не могу понять чем же отличия кроме синтаксиса. смыcловое отличие не могу уловить!
Ответы:
судя по тому что здесь написано, это не внешняя, а дружественная функция. может я чего то не знаю, но про внешние даже гугл мне ничего не сказал.
В Си нет понятия внешняя/внутренняя. Есть области видимости - в пределах блока, файла и программы. "Внешняя" - вероятно то, что доступно извне рассматриваемого блока.
Функции в C++ могут описываться внутри класса - тогда это методы класса. Функции могут описываться за пределами класса, тогда это глобальные функции. Разница между методами и глобальными функциями только в доступе к private/protected переменным класса и в именовании. Метод класса всегда может обратиться ко всем private/protected - переменным. Глобальная (внешняя) функция не имеет доступа к private/protected - переменным класса. Чтобы глобальная функция получила доступ к членам класса, её нужно описать как friend.  С точки зрения синтаксиса - разница  философская. Работать в вашем случае операторы будут одинаково.
Не согласен с dev64 (Andrey Chesnokov):
В выражении "c = a + b;" ничего не сказано о том кто будет модифицироваться а кто нет, поэтому запись предложенная автором вопроса вполне себе правильная и никакими стандартами С++ не запрещается.


13 лет назад

RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.

Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.

Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.