学习类的过程的一些记录
这是某次作业的代码,要求创建一个点类,因为不听课,在打代码的过程中遇到许多坑,现在来总结以填坑
#include<iostream>
#include<cmath>
using namespace std;
class Point{
private:
float x, y;
public:
Point();//不带参的构造函数
Point(float xx, float yy);//带参的构造函数
void set();
void show();
Point calc(Point p);
float getX();
float getY();
//这两个函数是得到point类私有数据的关键函数,外部不可以直接访问类的私有数据,需要通过些特殊手段
};
Point::Point()
{
x = 0;
y = 0;
}
Point::Point(float xx,float yy)
{
x = xx;
y = yy;
}
void Point::set()
{
cout << "enter the x and y: ";
cin >> x >> y;
}
void Point::show()
{
cout << "x = " << x << endl;
cout << "y = " << y << endl;
}
Point Point::calc(Point p)
{
Point temp;
temp.x = (x - p.x) * (x - p.x);
temp.y = (y - p.y) * (y - p.y);
//类内部函数可以直接使用p.x和p.y来调用数据
return temp;
}
float Point::getX()
{
return x;
}
float Point::getY()
{
return y;
}
float calc_dis(Point p)
{
float x, y, dis;
x = p.getX();
y = p.getY();
//非类内部函数直接用p.x+p.y会报错
dis = sqrt(x + y);
return dis;
}
int main()
{
Point p2, p3;
float dis;
// p1.set();
Point p1(4, 5);
Point p4;
p2.set();
//p1.show();
// p2.show();
p3 = p2.calc(p1);
dis = calc_dis(p3);
cout << "distance = " << dis << endl;
p4.show();
}