89792

Дружественные функции и классы

Лекция

Информатика, кибернетика и программирование

Дружественной функцией класса называется функция, которая, не являясь его компонентом, имеет доступ к его защищенным и собственным компонентам. Функция не может стать другом класса без «его согласия»...

Русский

2015-05-13

36.91 KB

4 чел.

Дружественные функции и классы

Дружественные функции

Дружественной функцией класса называется функция, которая, не являясь его компонентом, имеет доступ к его защищенным и собственным компонентам. Функция не может стать другом класса без «его согласия»;

Дружественная функция:

  •  не может быть компонентной функцией того класса, по отношению к которому определяется как дружественная;
  •  может быть компонентной функцией другого ранее определенного класса;
  •  может быть глобальной функцией;
  •  может быть дружественной по отношению к нескольким классам;
  •  при вызове не получает указателя this.

Пример #9. Точка и прямая на плоскости

#include <iostream.h>

class line2;

class point2

{ float x,y;

public: 

point2(float xn=0.0, float yn=0.0)

{x=xn; y=yn;}

friend float uclon(point2, line2);

};

class line2

{ float A, B, C;

public:

line2(float a, float b, float c)

{A=a; B=b; C=c;}

friend float uclon(point2, line2);

};

float uclon(point2 p, line2 l)

{ return l.A* p.x+l.B* p.y+ l.C;}

void main()

{point2 P(16.0, 12.3);

line2 L(10.0,-42.3, 24.0);

cout <<“\n Уклонение точки Р от прямой L: ”;

cout<<uclon(P, L);

}

Дружественные классы

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

Пример #10. Точка и вектор в N-мерном пространстве

#include <iostream.h>

#include <stdlib.h>

class pointN

{ int Npoint;//размерность пространства

double *x;//указатель на массив координат точки

friend class vectorN;//дружественный класс

public:

pointN(int n, double d=0.0);//конструктор точек

};

// определение конструктора

pointN::pointN(int n, double d)

{ Npoint=n;

x=new double [Npoint];

for (int i=0; i<Npoint; i++) x[i]=d;}

class vectorN

{ double *xv; //указатель на массив координат вектора

int Nvector;//размерность пространства

public:

vectorN (pointN, pointN);//конструктор векторов

double norm();

};

// определение конструктора

vectorN::vectorN(pointN beg, pointN end)

{ if (beg.Npoint != end.Npoint)

{ cerr<<“\n Ошибка в размерностях точек!”;

exit(1);}

Nvector=beg.Npoint;

xv=new double [Nvector];

for (int i=0; i<Nvector; i++) xv[i]=end.x[i]-beg.x[i];

}

// вычисление нормы вектора

double vectorN::norm()

{ double dd=0.0;

for (int i=0; i<Nvector; i++)  dd+=xv[i]*xv[i];

return dd;

}

void main(void)

{

pointN A(2, 4.0); pointN B(2, 2.0);

vectorN V(A,B);

cout<<“\n Норма вектора AB:” <<V.norm();

pointN X(3, 2.0);

vectorN Z(A,X);//ошибка в размерностях точек

}


 

А также другие работы, которые могут Вас заинтересовать

80793. Правовые меры охраны морской воды 36.9 KB
  Конкретизированы экологически значимые виды деятельности которые могут ими осуществляться проведение исследований разведка и разработка добыча водных биологических ресурсов и других природных ресурсов внутренних морских вод и территориального моря а также другая деятельность в том числе с борта летательного аппарата. Экономические отношения по эксплуатации природных ресурсов внутренних морских вод и территориального моря строятся на основе принципов: платности пользования; ответственности за нарушения условий хозяйственной...
80794. Правовое регулирование охоты и рыболовства 34.38 KB
  Законодательство о рыболовстве и сохранении водных биоресурсов основывается на следующих принципах: 1 учет значения водных биоресурсов как основы жизни и деятельности человека согласно которому регулирование отношений в области рыболовства и сохранения водных биоресурсов осуществляется исходя из представлений о них как о природном объекте охраняемом в качестве важнейшей составной части природы природном ресурсе используемом человеком для потребления в качестве основы осуществления хозяйственной и иной деятельности и одновременно как об...
80795. Правовая охрана атмосферного воздуха 34.01 KB
  Это Федеральный закон Об охране атмосферного воздуха акты федерального уровня о санитарноэпидемиологическом благополучии населения об отходах и т. Российское законодательство об охране атмосферного воздуха базируется на принципах приоритета охраны жизни и здоровья человека обеспечения благоприятных условий для жизни труда и отдыха недопущения необратимых последствий загрязнения атмосферного воздуха для окружающей среды обязательности государственного регулирования выбросов загрязняющих веществ и вредных физических воздействий на...
80796. Правовая охрана памятников природы, редких и находящихся под угрозой исчезновения растений и животных 32.41 KB
  Природные объекты и комплексы объявляются памятниками природы федерального значения а территории занятые ими особо охраняемыми природными территориями федерального значения Правительством Российской Федерации по представлению федеральных органов исполнительной власти в области охраны окружающей среды. Природные объекты и комплексы объявляются памятниками природы регионального значения а территории занятые ими особо охраняемыми природными территориями регионального значения соответствующими органами государственной власти субъектов...
80797. Правовой режим государственных природных заповедников 30.95 KB
  Исторически заповедники первая форма особо охраняемых природных территорий. 8 Федерального закона Об особо охраняемых природных территориях принимает Правительство РФ по представлению специально уполномоченного на то государственного органа Российской Федерации в области охраны окружающей природной среды. Природные комплексы и объекты земля воды недра растительный и животный мир на территории государственных природных заповедников полностью изымаются из хозяйственного использования ст.
80798. Правовой режим национальных парков 32.53 KB
  С учетом специфики данного вида особо охраняемой территории и задач которые на них возлагаются при создании на территориях национальных парков устанавливается дифференцированный режим особой охраны с учетом их природных историкокультурных и иных особенностей. Для этого в пределах национальных парков могут быть выделены следующие функциональные зоны: заповедная в пределах которой запрещены любая хозяйственная деятельность и рекреационное использование территории; особо охраняемая в пределах которой обеспечиваются условия для...
80799. Требования в области охраны окружающей среды при осуществлении хозяйственной и иной деятельности 30.56 KB
  При этом должны предусматриваться мероприятия по охране окружающей среды восстановлению природной среды рациональному использованию и воспроизводству природных ресурсов обеспечению экологической безопасности. Нарушение требований в области охраны окружающей среды влечет за собой приостановление по решению суда размещения проектирования строительства реконструкции ввода в эксплуатацию эксплуатации консервации и ликвидации зданий строений сооружений и иных объектов. Прекращение в полном объеме размещения проектирования...
80800. Правовое регулирование обращения с химическими и биологическими веществами 29.88 KB
  Закон о санитарноэпидемиологическом благополучии населения предусмотрел в качестве одной из основных мер обеспечения безопасного обращения с потенциально опасными для человека химическими биологическими веществами и отдельными видами продукции государственную регистрацию ст. Потенциально опасные для человека химические биологические вещества и отдельные виды продукции допускаются к производству транспортировке закупке хранению реализации и применению использованию после их государственной регистрации. Правовое регулирование...
80801. Экологические требования при эксплуатации опасных производственных объектов 32.08 KB
  Организация эксплуатирующая опасный производственный объект обязана: соблюдать положения настоящего Федерального закона других федеральных законов и иных нормативных правовых актов Российской Федерации а также нормативных технических документов в области промышленной безопасности; иметь лицензию на осуществление конкретного вида деятельности в области промышленной безопасности подлежащего лицензированию в соответствии с законодательством Российской Федерации; обеспечивать укомплектованность штата работников опасного производственного...