Experimento C ++ 03 (01) Clase de ubicación

Descripción del título
Diseñe una clase de ubicación para representar el sistema de coordenadas rectangular, con dos miembros de datos privados de tipo doble x, y; en el programa principal, ingrese los valores correspondientes, cree dos objetos ayb de la clase Ubicación y requiera las coordenadas de a El punto está en el tercer cuadrante y el punto de coordenadas de b está en el segundo cuadrante; la función miembro y la función amiga se utilizan para calcular la distancia entre dos puntos de coordenadas dados.
[Mensaje] El marco de referencia de la
clase Location es el siguiente: class Location
{ public: Location (doble a, doble b); // Constructor double getX (); // Función miembro, toma el valor de la coordenada x double getY () ; // Función miembro, toma el valor de la coordenada y double distance1 (Location &); // Función miembro, encuentra la distancia entre dos puntos dados // Función Friend, encuentra la distancia entre dos puntos dados friend double distance1 ( Ubicación &, Ubicación &); privado: doble x, y; }; Descripción de entrada Dos líneas, cada línea son las coordenadas de un punto. Descripción de salida Cuatro líneas: la primera y la segunda líneas son las coordenadas del primer punto y el segundo punto respectivamente . La tercera línea es la distancia entre los puntos obtenidos al llamar a la función miembro. La cuarta línea es la distancia entre los puntos obtenidos al llamar a la función amigo. Ejemplo de entrada 1 2 6 7 Ejemplo de salida





















El primer punto: A (1,2) El
segundo punto: B (6,7)
llama a la función miembro, Distancia = 7.07107
llama a la función amiga, Distancia = 7.07107

#include <iostream>
#include <cmath>

using namespace std;
class Location
{
    
    
public:
	Location(double a, double b);   //构造函数
	double getX();    //成员函数,取x坐标的值
	double getY();    //成员函数,取y坐标的值
	double distance1(Location &);   //成员函数,求给定两点之间的距离	
	friend double distance1(Location &, Location&);	  //友元函数,求给定两点之间的距离
private:
	double x, y;
};
Location::Location(double a, double b)
{
    
    
	x = a;
	y = b;
}
double Location::getX()
{
    
    
	return x;
}
double Location::getY()
{
    
    
	return y;
}
double distance1(Location &a, Location&b)
{
    
    
	double dx = a.getX() - b.getX();
	double dy = a.getY() - b.getY();
	return sqrt(dx*dx + dy * dy);

}
double Location::distance1(Location &b)
{
    
    

	double dx = x - b.getX();
	double dy = y - b.getY();
	return sqrt(dx*dx + dy * dy);

}

int main()
{
    
    
	double x1, x2, y1, y2;
	cin >> x1 >> y1;
	cin >> x2 >> y2;
	Location a(x1, y1);
	Location b(x2, y2);

	cout << "第一个点:" << "A(" << x1 << "," << y1 << ")" << endl;
	cout << "第二个点:" << "B(" << x2 << "," << y2 << ")" << endl;

	cout << "调用成员函数,Distance=" << a.distance1(b) << endl;
	cout << "调用友元函数,Distance=" << distance1(a, b) << endl;
	return 0;
}

Función de miembro y función de amigo

Función miembro
double Location::distance1(Location &b)
{

	double dx = x - b.getX();
	double dy = y - b.getY();
	return sqrt(dx*dx + dy * dy);

}

使用
a.distance1(b)
Función amigo

La función de amigo no necesita escribir alcance

double distance1(Location &a, Location&b)
{
	double dx = a.getX() - b.getX();
	double dy = a.getY() - b.getY();
	return sqrt(dx*dx + dy * dy);

}
使用
distance1(a, b)

Supongo que te gusta

Origin blog.csdn.net/weixin_44179485/article/details/105754170
Recomendado
Clasificación