ВУЗ:
Составители:
Рубрика:
class matrix /*-определение класса матрица через вектор; */
{ vector v[4];
/* Необходимые функции члены класса матрица; */
friend vector multiply(matrix&,vector&);
};/*-конец определения класса матрица; */
В оба класса здесь введена одна и та же функция-друг mul-
tiply,выполняющая следующие действия:
vector multiply(matrix& m,vector& v) /*-внешняя функция; */
{ vector r; /*-возращаемый вектор результата; */
for(int i=0;i<=3;i++)
{r.v[i]=0;/*-предполагается,что в классе век- */
/* тор определена операция[]; */
for (int j=0;j<=3;j++) /*-строка на столбец; */
r.v[i]+=m.v[i][j]*v.v[j];
} /*-конец цикла по элементам вектора; */
return r;
};/*-конец определения внешней функции умножения */
/* матрицы на вектор; */
Если все функции одного класса являются друзьями другого,
то используется такая краткая запись:
class x { friend class y; ... };
Рассмотренный способ включения внешних функций в определе-
ние составного типа позволяет по иному построить иерархию
составных типов,когда все функции,необходимые для доступа к
полям типов,являются внешними и включаются в соответствующие
типы как функции-друзья.Достоинства и недостатки такого под-
хода рассматриваются в [1].
Поскольку класс является в языке C++ основным средством ре-
ализации принципов объектно-ориентированного программирования,
перечислим виды членов,используемых для его определения:
а)определения констант и переменных основных типов:char,int,
float и т.д.;
22
class matrix /*-определение класса матрица через вектор; */ { vector v[4]; /* Необходимые функции члены класса матрица; */ friend vector multiply(matrix&,vector&); };/*-конец определения класса матрица; */ В оба класса здесь введена одна и та же функция-друг mul- tiply,выполняющая следующие действия: vector multiply(matrix& m,vector& v) /*-внешняя функция; */ { vector r; /*-возращаемый вектор результата; */ for(int i=0;i<=3;i++) {r.v[i]=0;/*-предполагается,что в классе век- */ /* тор определена операция[]; */ for (int j=0;j<=3;j++) /*-строка на столбец; */ r.v[i]+=m.v[i][j]*v.v[j]; } /*-конец цикла по элементам вектора; */ return r; };/*-конец определения внешней функции умножения */ /* матрицы на вектор; */ Если все функции одного класса являются друзьями другого, то используется такая краткая запись: class x { friend class y; ... }; Рассмотренный способ включения внешних функций в определе- ние составного типа позволяет по иному построить иерархию составных типов,когда все функции,необходимые для доступа к полям типов,являются внешними и включаются в соответствующие типы как функции-друзья.Достоинства и недостатки такого под- хода рассматриваются в [1]. Поскольку класс является в языке C++ основным средством ре- ализации принципов объектно-ориентированного программирования, перечислим виды членов,используемых для его определения: а)определения констант и переменных основных типов:char,int, float и т.д.; 22
Страницы
- « первая
- ‹ предыдущая
- …
- 20
- 21
- 22
- 23
- 24
- …
- следующая ›
- последняя »