|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
10.11.2022, 21:45 | #1 |
Пользователь
Регистрация: 14.11.2021
Сообщений: 43
|
Дружественные классы в C++
Если создать взаимно дружественные классы, можно ли их ограничить так: например создали класс A и B, и внутри A мы сделали дружественными только некоторые функции-элементы от B, а у B внутри мы сделали дружественными только некоторые функции-элементы от A.Какие то проблемы будут ?
|
11.11.2022, 00:25 | #2 |
Форумчанин
Регистрация: 27.04.2022
Сообщений: 493
|
На сколько я понял при объявлении дружественным целый класс, доступны будут все функции. Елинственное чего я не понял, так это вообще назначение этих самых друзей. В С++ точно есть ООП?
стимулятор https://yoomoney.ru/to/41001303250491
|
11.11.2022, 07:48 | #3 |
фрилансер
Форумчанин
Регистрация: 11.10.2019
Сообщений: 967
|
Huseyn AX, можно отдельные функции задружить:
Код:
Valick, а какая связь ООП с доступом к полям и методам? ООП можно и на чистом Си, и на ассемблере замутить |
11.11.2022, 07:51 | #4 |
фрилансер
Форумчанин
Регистрация: 11.10.2019
Сообщений: 967
|
в подавляющем большинстве случаев причина - ошибка проектирования. Но если стоит выбор - срочно переделывать рабочий код или просто аккуратно подставить friend, то понятно, что программист выбирает. Но потом, в спокойной обстановке, неплохо бы произвести рефакторинг
|
11.11.2022, 09:23 | #5 | |
Форумчанин
Регистрация: 27.04.2022
Сообщений: 493
|
Без инкапсуляции нет ООП.
Это где-то описано? А ещё интересуют случаи которые не в большинстве. Есть ли такие обстоятельства при которых невозможно написать код без использования дружественных функций? Цитата:
поскорее решить задачу? Торопились? Возможно. А может быть, вам казалось, что у вас нет времени качественно выполнить свою работу; что ваше начальство будет недовольно, если вы потратите время на чистку своего кода. А может, вы устали работать над программой и вам хотелось поскорее избавиться от нее. А мо- жет, вы посмотрели на список запланированных изменений и поняли, что вам необходимо поскорее «прикрутить» этот модуль, чтобы перейти к следующему. Такое бывало с каждым. Каждый из нас смотрел на тот хаос, который он только что сотворил, и решал оставить его на завтра. Каждый с облегчением видел, что бестолковая программа работает, и решал, что рабочая мешанина — лучше, чем ничего. Каждый *обещал себе вернуться и почистить код… потом. Конечно, в те дни мы еще не знали закон Леблана: потом равносильно никогда. Роберт Мартин - Чистый код
стимулятор https://yoomoney.ru/to/41001303250491
|
|
11.11.2022, 09:34 | #6 |
фрилансер
Форумчанин
Регистрация: 11.10.2019
Сообщений: 967
|
в ассемблере и Си нет никакой инкапсуляции, но ООП там применять возможно. Инкапсуляция может быть просто правилом, хотя и не поддерживаемым компилятором
кхм... А как же абзацем выше утверждение про необходимость инкапсуляции? Может, и описано где-то. У меня это следует из опыта например, локальный или приватный класс-помощник в другом классе у меня так бывало в основном из-за отсутствия нужных знаний на момент написания первого варианта кода А через год туда смотришь - мамамия! А кто это сдееелал! |
11.11.2022, 09:46 | #7 | |
Форумчанин
Регистрация: 27.04.2022
Сообщений: 493
|
Цитата:
а в коде сплошные классы "помошники" Нет класс помошник за отмаз не катит, можно его нормально внедрить через интерфейсы и будет порядок.
стимулятор https://yoomoney.ru/to/41001303250491
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Дружественные классы | KT82 | Общие вопросы C/C++ | 9 | 09.02.2016 19:20 |
Дружественные классы эллипс и круг | dkii | Общие вопросы C/C++ | 21 | 04.03.2014 08:50 |
дружественные классы | zla9_kolu4ka | Общие вопросы C/C++ | 15 | 28.02.2014 16:53 |
Дружественные классы и protected | Stiker | Помощь студентам | 1 | 10.01.2013 00:57 |
Дружественные функции и классы | Opiym | Помощь студентам | 1 | 05.04.2010 21:51 |