class line;

//==========================================================
// Класс point
class point
{
public:
	// Функция Clear объявляется дружественной классу point
	void Set(line*); 

	// Интерфейс класса...
private:
	int	m_x;
	int	m_y;
};

//==========================================================
// Класс point
class line
{
public:
	// Функция Clear объявляется дружественной классу point
	friend void point::Set(line*); 

	// Интерфейс класса...
private:
	int	begin_x;
	int	begin_y;
	int	end_x;
	int	end_y;
};

//==========================================================
// Функция Clear
void point::Set(line* ptrLine) 
{
	// Обращаемся к элементам класса, объявленным как private
	ptrLine->begin_x = 0;
	ptrLine->begin_y = 0;
	return;
}

//==========================================================
// Главная функция
void main() 
{
	point	pointTestPoint;
	line	lineTestPoint;

	// Вызываем дружественную функцию
	pointTestPoint.Set(&lineTestPoint);
}
