Объектно-ориентированное программирование на языке С++. Лясин Д.Н - 31 стр.

UptoLike

Составители: 

31
имя_класса :: имя_статического_метода ( список_фактических_параметров )
Рассмотрим пример с классом «клиент банка».
//Листинг 14. Использование статических компонент в класса
class client
{ …
static float percent;
public:
static void ChangePercent(float p)
{percent=p;
}
};
float client::percent=0.1;
main()
{ //client::percent=0.2; Такое обращение запрещено, т.к. percent- частный компонент
client::ChangePercent(0.1);
client c(“Иванов”,”N12345”,200);
c.ChangePercent=0.05;
}
3.6. Дружественные функции
Для разделения интерфейса класса и его внутренней реализации различным
компонентам класса присваивается разная область видимости с использованием
ключевых слов public, protected и private. Компоненты, объявленные в секции pri-
vate являются частными, то есть недоступными из окружения объекта, и работать с
такими компонентами могут только компонентные функции класса. Однако, зачас
-
тую возникает необходимость обращаться к частным компонентам объекта из
функций, не являющихся методами класса. Это, конечно, происходит не от жела-
ния программиста нарушить принцип инкапсуляции и обеспечить доступ извне к
внутренней реализации класса. Просто в некоторых случаях необходимо организо-
вать взаимодействие нескольких объектов разных классов, и функция, обеспечи-
вающая взаимодействие,
должна иметь доступ к частным компонентам одновре-
менно нескольких объектов. Объявить функцию методом одновременно несколь-
ких классов невозможно, поэтому в стандарте языка С++ предусмотрена возмож-
имя_класса :: имя_статического_метода ( список_фактических_параметров )
      Рассмотрим пример с классом «клиент банка».
//Листинг 14. Использование статических компонент в класса
class client
   {…
     static float percent;
   public:
      static void ChangePercent(float p)
    {percent=p;
     }
    …
    };
float client::percent=0.1;
main()
{ //client::percent=0.2; Такое обращение запрещено, т.к. percent- частный компонент
  client::ChangePercent(0.1);
  client c(“Иванов”,”N12345”,200);
  c.ChangePercent=0.05;
}


      3.6.   Дружественные функции


    Для разделения интерфейса класса и его внутренней реализации различным
компонентам класса присваивается разная область видимости с использованием
ключевых слов public, protected и private. Компоненты, объявленные в секции pri-
vate являются частными, то есть недоступными из окружения объекта, и работать с
такими компонентами могут только компонентные функции класса. Однако, зачас-
тую возникает необходимость обращаться к частным компонентам объекта из
функций, не являющихся методами класса. Это, конечно, происходит не от жела-
ния программиста нарушить принцип инкапсуляции и обеспечить доступ извне к
внутренней реализации класса. Просто в некоторых случаях необходимо организо-
вать взаимодействие нескольких объектов разных классов, и функция, обеспечи-
вающая взаимодействие, должна иметь доступ к частным компонентам одновре-
менно нескольких объектов. Объявить функцию методом одновременно несколь-
ких классов невозможно, поэтому в стандарте языка С++ предусмотрена возмож-

                                              31