Объектно-ориентированное программирование



         

Объектно-ориентированное программирование - стр. 76


Допустим, что вы имеете функцию для вывода матрицы в файл. Как правило, такие функции, для распечатки снабжаются большим количеством описаний, например:

print(matrix a,char *format=”%9.4”,char *title=null);

Задавать значение параметров лучше  только один раз в разделе описаний.

Сделав это, обращение к функции может выглядеть так:

matrix c;

....

print(c);

или

print(c,”%12.7”);

ССЫЛКИ

Ссылка- это переменная, задаваемая указателем. Чтобы сделать переменную ссылкой, необходимо после описателя типа поставить оператор “&”. Ссылка во всем себя ведет так же, как и переменная того же типа, но при этом надо помнить, что на самом деле она совпадает с другой переменной, адрес которой указывается при объявлении ссылки, например:

int a;

int &b=&a;// переменная b совпадает с а.

Возникают ситуации, когда в функцию необходимо передавать не значения переменной, а ее адрес. Явная работа с адресами вызывает много неудобств при разработке функции и ее использовании. Теперь, при описании функции достаточно указать, что параметр передает по ссылке, и работать с ним не как с адресом, а как с переменной. Например, приведем функцию пересчета декартовых координат в полярные:

void  polkar(double &x,double &y,double &FI,double &R){

 R=sqrt(x*x*+y*y);

 FI=atang(y,x);

}

А вот выглядит обращение к данной функции:

double X,Y,FI,R;

……..

poral(x,y,FI,R);

Таким образом, незаметно для нас параметры передаются в функцию через их адреса.

Таким образом, можно задать и тип возвращаемого значения, например:

Double &fuuc(int i);

ФУНКЦИИ- ЧЛЕНЫ СТРУКТУРЫ

Как правило, описав новую структуру, вы тут же создаете набор функций, работающих с этой структурой. Например, для структуры _3d, описывающей трехмерный вектор, можно записать функцию:

double mod(_3d &x);

которая будет вычислять модуль вектора. Здесь вы описываете функцию, вычисляющую модуль вектора, который передается ей через формальные параметры. Между тем модуль- характеристика присущая каждому вектору.




Содержание  Назад  Вперед