Cтраница 2
Программные модификации класса, который является элементом другого класса, не требуют изменения вмещающего класса до тех пор, пока остается неизменным открытый интерфейс класса-элемента. Отметим, однако, что класс композиции может нуждаться в перекомпиляции. [16]
Программные модификации класса, который является элементом другого класса, не требуют изменения вмещающего класса до тех пор, пока остается неизменным открытый интерфейс класса-элемента. Отметим, однако, что класс композиции может нуждаться в перекомпиляции. [17]
![]() |
Пример вывода программы, приведенной на. [18] |
Конечно, шаблон класса списков включает и другие функции-элементы ( insertAtFront и removeFromBack), которые не желательно было бы делать доступными для класса очередей через открытый интерфейс. Так что когда мы указываем, что шаблон класса очередей должен наследовать шаблон класса списков, то задаем скрытое наследование. [19]
Например, если в одном из комплексов для решения определенной задачи потребовались данные, имеющиеся в другом ИК, то реализуется функция, которая напрямую обращается к базе данных ( или к открытым интерфейсам доступа к данным) второго комплекса, получает нужные данные и передает их для обработки в первый комплекс. [20]
Как уже упоминалось, клиенты - это составные части профаммы, которые создают и используют объекты вашего класса. Открытый интерфейс класса ( объявление класса) можно представить себе в виде соглашения с этими клиентами, в котором указываются способы взаимодействия клиентов с классом. [21]
Это формирует открытый интерфейс класса. [22]
Основным назначением открытых элементов класса является предоставление клиентам информации о доступных в классе услугах. Этот набор услуг образует открытый интерфейс класса. Клиенты класса не должны заботиться о способе выполнения классом своих задач. Закрытые элементы класса, как и определения его открытых элементов-функций, недоступны для клиентов класса. Эти компоненты составляют реализацию класса. [23]
Основная задача открытых элементов состоит в том, чтобы дать клиентам класса представление о возможностях ( услугах), которые обеспечивает класс. Этот набор услуг составляет открытый интерфейс класса. Клиентов класса не должно касаться, каким образом класс выполняет их задачи. [24]
Сначала мы рассмотрим заголовок класса String и обсудим закрытые данные, использованные для представления объектов String. Затем мы пройдемся по открытому интерфейсу класса, обсуждая каждую из услуг, которые предоставляет наш класс. [25]
Несмотря на то, что метки public: и private: могут повторяться и чередоваться, перечислите сначала в одной группе все открытые элементы класса, а затем перечислите в другой группе все его закрытые элементы. Это акцентирует внимание пользователя на открытом интерфейсе класса, а не на его реализации. [26]
Например, в объявлении класса Cat указывается, что профамма-клиент может инициализировать любой возраст объекта этого класса с помощью функции доступа SetAgeO и возвратить это значение с помощью функции доступа GetAgeO. Обратите внимание, что в открытом интерфейсе класса ничего не говорится о закрытой переменной-члене itsAge, которая используется при выполнении класса и не должна интересовать клиентов. Значение возраста можно возвратить из объекта с помощью GetAgeO и установить с помощью SetAgeO, но сама переменная itsAge, в которой хранится это значение, скрыта от клиентов. [27]
Несмотря на то, что метки public: и private: могут повторяться и чередоваться, перечислите сначала в одной группе все открытые элементы класса, а затем перечислите в другой группе все его закрытые элементы. Это акцентирует внимание пользователя на открытом интерфейсе класса, а не на его реализации. [28]
В открытых ( публичных) функциях реализованы возможности, которые класс предоставляет своим клиентам. Открытые функции класса называют интерфейсом либо открытым интерфейсом класса. [29]
Несмотря на то, что спецификаторы public и private могут повторяться и чередоваться, перечисляйте сначала все элементы класса открытой группы, а затем все элементы закрытой группы. Это концентрирует внимание клиентов класса в большей степени на его открытом интерфейсе, чем на реализации класса. [30]