ВУЗ:
Составители:
Рубрика:
инициализатора структуры или операторов присваивания неприем-
лемо,так как здесь участвует лишь один экземпляр структуры.Для
преоделения этого недостатка напишем функцию инициализации,
которой любой экземпляр структуры передается как параметр:
void InitPoint(Point& Target,int NewX,int NewY,/*-инициа- */
Boolean NewVisiable)/* лизация полей Point;*/
{ Target.x =NewX;
Target.y =NewY;
Target.Visiable=NewVisiable;
} /*-конец определения функции инициализации Point; */
Данная функция построена для обслуживания структуры Point,
чтобы произвести инициализацию любого экземпляра этой структу-
ры.Учитывая эти обстоятельства и стремясь к компактности,ав-
торы языка С++ предложили следующие усовершенствования:
1)для функций инициализации объектов некоторого типа исполь-
зовать имя этого типа ;
2)параметр для передачи имени экземпляра типа исключить из
заголовка функции инициализации;
3)заменить в теле функции ссылку на экземпляр указателем
this, который при использовании функции всегда устанавливается
на нужный экземпляр типа;
4)не указывать тип возвращаемого значения.
Функция инициализации экземпляров структуры Point теперь
выглядит следующим образом:
Point(int NewX,int NewY,Boolean NewVisible)
{ this->x =NewX;
this->y =NewY;
this->Visible=NewVisible;
} /*-конец определения функции инициализации Point; */
Для большей компактности указатель на текущий экземпляр ти-
па можно опускать.В языке С++ требуется перед именем функции,
определяемой вне структуры,указывать имя той структуры,в те-
ло которой она включается.Так что окончательно получаем:
11
инициализатора структуры или операторов присваивания неприем-
лемо,так как здесь участвует лишь один экземпляр структуры.Для
преоделения этого недостатка напишем функцию инициализации,
которой любой экземпляр структуры передается как параметр:
void InitPoint(Point& Target,int NewX,int NewY,/*-инициа- */
Boolean NewVisiable)/* лизация полей Point;*/
{ Target.x =NewX;
Target.y =NewY;
Target.Visiable=NewVisiable;
} /*-конец определения функции инициализации Point; */
Данная функция построена для обслуживания структуры Point,
чтобы произвести инициализацию любого экземпляра этой структу-
ры.Учитывая эти обстоятельства и стремясь к компактности,ав-
торы языка С++ предложили следующие усовершенствования:
1)для функций инициализации объектов некоторого типа исполь-
зовать имя этого типа ;
2)параметр для передачи имени экземпляра типа исключить из
заголовка функции инициализации;
3)заменить в теле функции ссылку на экземпляр указателем
this, который при использовании функции всегда устанавливается
на нужный экземпляр типа;
4)не указывать тип возвращаемого значения.
Функция инициализации экземпляров структуры Point теперь
выглядит следующим образом:
Point(int NewX,int NewY,Boolean NewVisible)
{ this->x =NewX;
this->y =NewY;
this->Visible=NewVisible;
} /*-конец определения функции инициализации Point; */
Для большей компактности указатель на текущий экземпляр ти-
па можно опускать.В языке С++ требуется перед именем функции,
определяемой вне структуры,указывать имя той структуры,в те-
ло которой она включается.Так что окончательно получаем:
11
Страницы
- « первая
- ‹ предыдущая
- …
- 9
- 10
- 11
- 12
- 13
- …
- следующая ›
- последняя »
