Дружба? ...

Тема в разделе "LANGS.C", создана пользователем ckunep, 8 июл 2009.

  1. ckunep

    ckunep New Member

    Публикаций:
    0
    Регистрация:
    3 сен 2008
    Сообщения:
    19
    Сейчас я создаю класс и возник вопрос: использовать ли мне дружественные операторы(функции) или воспользоваться фунциями-членами для получения доступа к данным. А что используете вы?
     
  2. GoldFinch

    GoldFinch New Member

    Публикаций:
    0
    Регистрация:
    29 мар 2008
    Сообщения:
    1.775
    неоправнанное применение friend нарушает инкапсуляцию и увеличивает число связей
    оправданное применение friend число связей не увеличивает и инкапсуляцию не нарушает, например

    Код (Text):
    1. template<derived> class base
    2. {
    3. ... static_cast<derived*>(this)->foo() ...
    4. };
    5.  
    6. class Bar: base<Bar>
    7. {
    8. friend class base<Bar>;
    9. T foo();
    10. ...
    11. }