Difference between revisions of "Step 5 (S-11077)"
(Create page for step id=11077) |
|||
Line 1: | Line 1: | ||
Step on Stepik: https://stepik.org/lesson/561/step/5 | Step on Stepik: https://stepik.org/lesson/561/step/5 | ||
− | + | [[File:Step_5_(S-11077)_1.png|border|800px]] | |
[00:00 - 00:15] мы сами разобрались как можно определять дружественный класс дружный функции и дружественными дружественной функции дружественной методы это довольно локально вещи они позволяют нарушать модификаторы доступа только внутри тела этой функции или нет в принципе и | [00:00 - 00:15] мы сами разобрались как можно определять дружественный класс дружный функции и дружественными дружественной функции дружественной методы это довольно локально вещи они позволяют нарушать модификаторы доступа только внутри тела этой функции или нет в принципе и | ||
Line 27: | Line 27: | ||
− | + | [[File:Step_5_(S-11077)_2.png|border|800px]] | |
[02:12 - 02:27] классов и может что то скрывать воспевать а вот вот друзья взгляд ничего не может надо понимать также да что то сказал что отношение наследования оно перпендикулярно отношению дружат то есть | [02:12 - 02:27] классов и может что то скрывать воспевать а вот вот друзья взгляд ничего не может надо понимать также да что то сказал что отношение наследования оно перпендикулярно отношению дружат то есть |
Latest revision as of 13:06, 7 August 2017
Step on Stepik: https://stepik.org/lesson/561/step/5
[00:00 - 00:15] мы сами разобрались как можно определять дружественный класс дружный функции и дружественными дружественной функции дружественной методы это довольно локально вещи они позволяют нарушать модификаторы доступа только внутри тела этой функции или нет в принципе и
[00:15 - 00:32] с 1 стороны и желательно потому что в нарушать инкапсуляцию другой стороны это достаточно локальное нарушение и в принципе с ним можно жить я как то мотивировать почему дружные классы это довольно плохо давайте охарактеризуем то отношения дружбы которая задается
[00:32 - 00:48] front на класс его можно хоть раз следующими утверждениями 1 утверждение это то что отношения дружбы не симметрично знать что если а является другом б
[00:48 - 01:03] то из этого не следует не следует что б является другом а почти как реальной жизни 2 отношения тоже соответствует реальной жизни если
[01:03 - 01:21] а друг б ab в свою очередь друг ц то отсюда не следует опять не следует что а является другом с нельзя так
[01:21 - 01:40] переносить отношения по цепочке надо понимать еще что отношения дружбы и отношений наследовании то разные и независимые вещи то есть отношение наследования не задают отношения дружбы если 2 класса находятся в отношении родства и то не знать что не дружит
[01:40 - 01:58] потому что тексты которые находятся в отношении росла они могут соответствующего направления а классно производной может обращаться к protected членом а но он не может обращаться к приватным членам а вдруг может
[01:58 - 02:12] то есть можно сказать что отношения дружбы оно сильнее чем отношения родства таким образом получается что а класс отец
[02:12 - 02:27] классов и может что то скрывать воспевать а вот вот друзья взгляд ничего не может надо понимать также да что то сказал что отношение наследования оно перпендикулярно отношению дружат то есть
[02:27 - 02:43] друг моего сына мне не друг друг моего отца мне не друг но тогда это можно считать и возможные комбинации сказать что ни 1 отношения не влияет на другое но при этом отношении дружбы оно сильнее чем
[02:43 - 02:58] отношении сильнее чем оно хуже с точки зрения инкапсуляции потому что мы позволяем 1 классу получить полный контроль над данными другого класса таким образом этот вопрос получается довольно сильно связано
[02:58 - 03:13] и это нарушает инкапсуляцию нарушают design позволяет писать код который потом сложно модифицировать модифицируя 1 классом придется модифицировать другой класс этого не произойдет если эти до вас будут общаться только через некоторый публичный интерфейс
[03:13 - 03:28] а так получается что 1 класс затачивается под конкретную реализацию другую класс поэтому вы так что ты такой что ключевые слова friend принципе стоит избегать то он нарушает инкапсуляцию но особенно это касается
[03:28 - 03:45] дружный класс то есть если вдруг вам потребовалось в 1 классе обратиться к приватным полям другого класса но тогда локализуйте эту часть выделить метод выделите некую функцию которая позволит это сделать и тогда сделайте ее дрозд
[03:45 - 03:53] но делать 1 класс дружным другому следует только при очень веских на то причинах