ВУЗ:
Составители:
Рубрика:
инициализатора структуры или операторов присваивания неприем-
лемо,так как здесь участвует лишь один экземпляр структуры.Для
преоделения этого недостатка напишем функцию инициализации,
которой любой экземпляр структуры передается как параметр:
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
- …
- следующая ›
- последняя »