Объектно-ориентированный язык программирования С++ в примерах. Сивохин А.В. - 10 стр.

UptoLike

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

Point VarPoint={0,0,true};/*-переменная с инициализацией; */
Point& RefPoint=VarPoint; /*-ссылка на Point; */
Point* PtrPoint=new Point;/*-указатель на Point; */
tipedef struct Point* PointPtr;/*-производный от Point тип*/
PointPtr DynPoint;/*-требуется использование операторов */
/* new для размещения и delete для уда- */
/* ления структуры Point; */
Доступ к полям данных объектов производится обычным спосо-
бом:
cout<<"\n"<<"x="<<VarPoint.x<<" "<<VarPoint.y<<" "
<<"\n"<<"Доступ к унаследованным полям,как к своим!"
<<"\n"<<"Visible="<<VarPoint.Visible;
cout<<"\n"<<"RefPoint.Visible="<<RefPoint.Visible;
cout<<"\n"<<"PtrPoint->Visible="<<PtrPoint->Visible=
RefPoint.Visible;
Следует особо подчеркнуть,что унаследованные поля доступны
так же, как и поля,объявленные внутри данного типа объекта.На-
пример,хотя х и у не являются частью объявления Point,но на-
следуются из типа Location,и поэтому их можно задавать,как
будто они объявлены внутри Point.
Хотя к полям рассматриваемых объектов имеется непосредст-
венный доступ,поступать так,значит иметь потенциальную воз-
можность их порчи в непредсказуемые моменты времени со все-
ми вытекающими отсюда последствиями.Основополагающая идея
объектно-ориентированного программирования состоит в том,
чтобы использовать для этих целей только специальные функции,
включаемые в определение структуры и называемые методами объ-
екта,а поля объекта защищать от воздействия каких-либо других
функций или операций.
1.3.Инкапсуляция данных и функций доступа к ним
Сначала рассмотрим,каким образом встроить в структуру функ-
цию инициализации ее полей.При этом заметим,что использование
10
  Point VarPoint={0,0,true};/*-переменная с инициализацией; */
  Point& RefPoint=VarPoint; /*-ссылка на Point;               */
  Point* PtrPoint=new Point;/*-указатель на Point;            */
  tipedef struct Point* PointPtr;/*-производный от Point тип*/
  PointPtr DynPoint;/*-требуется использование операторов      */
                    /* new для размещения и delete для уда- */
                    /* ления структуры Point;                 */


 Доступ к полям данных объектов производится обычным спосо-
бом:


  cout<<"\n"<<"x="<Visible="<Visible=
                                               RefPoint.Visible;


  Следует особо подчеркнуть,что унаследованные поля доступны
так же, как и поля,объявленные внутри данного типа объекта.На-
пример,хотя х и у не являются частью объявления Point,но на-
следуются из типа Location,и поэтому их можно задавать,как
будто они объявлены внутри Point.
  Хотя к полям рассматриваемых объектов имеется непосредст-
венный доступ,поступать так,значит иметь потенциальную воз-
можность их порчи в непредсказуемые моменты времени со все-
ми вытекающими отсюда последствиями.Основополагающая идея
объектно-ориентированного программирования состоит в том,
чтобы использовать для этих целей только специальные функции,
включаемые в определение структуры и называемые методами объ-
екта,а поля объекта защищать от воздействия каких-либо других
функций или операций.


   1.3.Инкапсуляция данных и функций доступа к ним


  Сначала рассмотрим,каким образом встроить в структуру функ-
цию инициализации ее полей.При этом заметим,что использование


                             10