private в C++

Тема в разделе "WASM.HEAP", создана пользователем NeuronViking, 18 мар 2010.

  1. Rockphorr

    Rockphorr Well-Known Member

    Публикаций:
    0
    Регистрация:
    9 июн 2004
    Сообщения:
    2.625
    Адрес:
    Russia
    паблик отличается от привата только тем что для привата не создаются функции get/set так как методы класса могут обраться до данных самостоятельно

    наследование просто помогает вам "скопировать" кучу кода, при этом естественно расположение данных может измениться (на уровне структур между старыми могут вклиниться новые)
     
  2. Rockphorr

    Rockphorr Well-Known Member

    Публикаций:
    0
    Регистрация:
    9 июн 2004
    Сообщения:
    2.625
    Адрес:
    Russia
    *добраться
     
  3. Rockphorr

    Rockphorr Well-Known Member

    Публикаций:
    0
    Регистрация:
    9 июн 2004
    Сообщения:
    2.625
    Адрес:
    Russia
    встречный вопрос -зачем ??? обойти проверку правильности кода компилятором ???
     
  4. NeuronViking

    NeuronViking New Member

    Публикаций:
    0
    Регистрация:
    29 окт 2004
    Сообщения:
    476
    Адрес:
    где-то в Сиднее
    Rockphorr
    я это выясняю не с целью обойти проверку, а с целью защититься от подобных ошибок. хотя пока на грабли не наступишь не вылечишься как правило...
     
  5. Ustus

    Ustus New Member

    Публикаций:
    0
    Регистрация:
    8 авг 2005
    Сообщения:
    834
    Адрес:
    Харьков
    NeuronViking
    А protected еще страшнее :)
    Вообще-то ответы на все такие вопросы дает ISO/IEC 14882 2003, только в нем надо приловчиться ковыряться.

    Обойти вобщем-то средствами языка нельзя, только грязными хаками, но следует помнить, что приватную виртуальную функцию из класса-наследника можно переопределить (хотя и нельзя явно вызвать базовую).
     
  6. Booster

    Booster New Member

    Публикаций:
    0
    Регистрация:
    26 ноя 2004
    Сообщения:
    4.860
    Как и любую другую.
     
  7. Ustus

    Ustus New Member

    Публикаций:
    0
    Регистрация:
    8 авг 2005
    Сообщения:
    834
    Адрес:
    Харьков
    Booster
    Просто некоторых это смущает почему-то :) Вызвать-то нельзя, а перекрыть - можно...
     
  8. Rockphorr

    Rockphorr Well-Known Member

    Публикаций:
    0
    Регистрация:
    9 июн 2004
    Сообщения:
    2.625
    Адрес:
    Russia
    почитайте страуструпа - дизайн и эволюция цэплусплус - там же чуть ли не прямым текстом написано все эти рюшечки (приват паблик и прочее) всего лишь средства языка для разрешения конфликтов имен и разделения их (имен) области действия - это все всего лишь навсего детали реализации патерна проектирования под названием инкапсуляция

    вы объявили что-то как приват, но вдруг вам это понадобилось в другой части программы - переносите в паблик и все
     
  9. Ustus

    Ustus New Member

    Публикаций:
    0
    Регистрация:
    8 авг 2005
    Сообщения:
    834
    Адрес:
    Харьков
    Rockphorr
    ну я бы не рекомендовал читать Страуструпа с целью изучения теории, особенно новичкам. Он, конечно, дядька умный, но излагает уж очень тяжеловесно и, кстати, не всегда корректно. Поэтому по теории лучше читать признанных теоретиков, таких как Саттер, Мейерс, и все равно относиться критически.

    Вот здесь ты очень ошибаешься, или с жабой перепутал, правила доступа не влияют на разрешение имен. Сначала разрешаются имена, потом проверяется доступ. Некоторые считают, что это полный бред, но в любом случае это стандарт, никто его уже ломать не будет.
     
  10. Rockphorr

    Rockphorr Well-Known Member

    Публикаций:
    0
    Регистрация:
    9 июн 2004
    Сообщения:
    2.625
    Адрес:
    Russia
    Ustus
    я ничего не не говорил про правила доступа и порядок, т.к. если имя определено локально то его можно повторно использовать в другой непересекающеся локальной части, а что сначала что потом вопрос второй.
     
  11. J0E

    J0E New Member

    Публикаций:
    0
    Регистрация:
    28 июл 2008
    Сообщения:
    621
    Адрес:
    Panama
    NeuronViking гугли "Паблик Морозов"

    Rockphorr не гони на Страуструпа, если что-то из привата понадобилось в паблике, надо не переносить а поносить консерваторию ;)
     
  12. Ustus

    Ustus New Member

    Публикаций:
    0
    Регистрация:
    8 авг 2005
    Сообщения:
    834
    Адрес:
    Харьков
    Rockphorr
    И что? Имя в любом случае можно использовать, а я про то, что private/protected/public на разрешение имен вообще не влияют. Они так, чисто для контроля.