定义类
类的基本结构
要用C++的类和对象实现点和圆之间距离的关系,我们首先要学会如何定义一个类。
在C++中定义一个类我们要用到class关键字。结构如下:
class point{
};
其中,ponit为该对象的名称,可以自定义。
这就是定义类的基本架构。
对象的属性和行为
在定义的类中,我们可以存放对象的属性和行为。举个例子,我们将一个人视为一个对象的话,那么,年龄、性别、生日等就可以称为其的属性,而他可以上课、学习C++、吃饭等就属于他的行为。
权限关键字
对于一个对象的行为属性,它都会有一个权限。比如年龄、密码等较为隐私的属性就不方便透露给别人,而对于穿着、饰品等就可以展露于众人...
C++中我们是通过public、private、protected这些关键字对对象的属性行为进行权限的限制。
public:
称为公共权限,类内我们可以对他进行访问,类外亦可以。
private:
称为私有权限,类内我们可以进行访问,类外就不行。
protected:
称为保护权限,类内我们可以进行访问,类外就不行。
下面我们来看示例:
class point{
private:
int m_x;
int m_y;
public:
void Setpoint(int x,int y)
{
m_x = x;
m_y = y;
}
int Getm_x()
{
return m_x;
}
int Getm_y()
{
return m_y;
}
};
如上,对于用private声明的我们在类以外的地方就不能进行访问,而public就行。
对点与圆的关系进行实现
首先,我们先定义一个点类
class point{
private:
int m_x;
int m_y;
public:
void Setpoint(int x,int y)
{
m_x = x;
m_y = y;
}
int Getm_x()
{
return m_x;
}
int Getm_y()
{
return m_y;
}
};
其中,m_x以及m_y为点的横纵坐标。
Setpoint函数通过传参可以实现对点坐标的设置。
Getm_x和Getm_y函数可以将横纵坐标作为返回值,从而实现点坐标的获取。
定义好了点类,我们再来定义圆类。
class Circle{
private:
point m_c;
int m_r;
public:
void Setm_r(int r)
{
m_r = r;
}
int Getm_r()
{
return m_r;
}
void Setcenter(point c)
{
m_c = c;
}
point Getcenter()
{
return m_c;
}
};
值得注意的是,在定义类是,其的属性和行为也可以是类类型。
我们就通过point m_c定义好了圆的圆心。
同理,Setm_r、Getm_r、Getcenter、Getcenter如上述一样。
这样我们就做好了我们的圆和点。
在写一个判断函数Distance就可以将此功能实现了!
int main(int argc, char** argv) {
point dian;
point center1;
center1.Setpoint(1,1);
dian.Setpoint(1,2);
Circle CC;
CC.Setm_r(2);
CC.Setcenter(center1);
cout<<Distance(dian,CC)<<endl;
return 0;
}
struct与class
在定义类时我们也可用struct,但是它与class有一点区别,class默认的是private,strcut默认的是public。
学习资源来自B站“黑马程序员”。