Double X = pA->GetX ( ) - pB->GetX ( ) ; // объявляет и вычисляет
Гипотенузы прямоугольного треугольника
Return sqrt ( X*X + Y*Y ) ; // вычисляет и возвращает значение
Double Y = A.y - B.y; // катеты прямоугольного треугольника
Double X = A.x - B.x; // объявляет и вычисляет
ДРУЖЕСТВЕННЫЕ ФУНКЦИИ И КЛАССЫ
Функции, дружественные одному классу
Обычный способ доступа к закрытым членам класса – использование открытой функции-члена. Однако C++ поддерживает и другой способ получения доступа к закрытым членам класса – с помощью дружественных функций. Дружественные функции не являются членами класса, но имеют доступ к его закрытым членам. Более того, одна такая функция может иметь доступ к закрытым членам нескольких классов.
Чтобы объявить функцию дружественной некоторому классу, в определение этого класса включают ее прототип, перед которым ставится ключевое слово friend. Приведем пример:
Файл Dot.h
class Dot// класс точки
{
// закрытые члены класса
const char name ;// имя точки
double x , y ;// координаты точки
public:// открытые члены класса
// конструкторы
Dot ( char Name) : name ( Name ) { x = 0 ; y = 0 ; }
Dot ( char Name , double X , double Y ) : name ( Name ) { x = X ; y = Y ; }
// inline функции получения и задания координат
inline double GetX ( ) const { return x ; }
inline double GetY ( ) const { return y ; }
inline void SetX ( double X ) { x = X; }
inline void SetY ( double Y ) { y = Y; }
// выводит на экран имя и координаты текущей точки
void Print ( ) const ;
// возвращает значение расстояния между текущей и заданной точками
double Dist ( Dot B ) const ;
// возвращает значение расстояния между двумя заданными точками
friend double Dist ( const Dot & A , const Dot & B ) ;
} ;
// возвращает значение расстояния между двумя заданными точками
double Dist ( Dot* pA , Dot* pB ) ;// функция получает указатели на точки
// возвращает значение площади треугольника с заданными вершинами
double Area ( const Dot & A , const Dot & B , const Dot & C ) ;
Файл Dot.cpp
double Dot :: Dist ( Dot B ) const
{
double X = B . x – x ;// объявляет и вычисляет
double Y = B . y – y ;// катеты прямоугольного треугольника
return sqrt ( X*X + Y*Y ) ;// вычисляет и возвращает значение
}// гипотенузы прямоугольного треугольника
double Dist ( const Dot & A , const Dot & B)
{
double Dist ( Dot* pA , Dot* pB )
{
double Area ( const Dot & A , const Dot & B , const Dot & C )