类:C++中用class表示

class 类名
{
访问权限:
public:公共权限,类内类外均可访问
protected:保护权限,类内可访问,类外不可访问
private:私人权限,类内可访问,类外不可访问
属性 也叫成员属性或成员变量
行为 也叫成员函数或成员方法
};

对象在类外进行创建。

同时,类可以嵌套使用。

class和struct区别:

class默认访问权限为私人权限,struct默认访问权限为公共权限。

这里提一个我出现的一个问题:

class Point {
public:
int X = 0, Y = 0;
};
class Cube {
public:
int m_r; //半径
void setm_r(int r)
{
m_r = r;
}
void getpoint(Point point, int x, int y)
{
point.X = x;
point.Y = y;
}
int distence(Point point1, Point point2)
{
return ((point1.X - point2.X) * (point1.X - point2.X) + (point1.Y - point2.Y) * (point1.Y - point2.Y));
}
};
int main()
{
Cube c1;
c1.setm_r(10);
Point point1, point2;
c1.getpoint(point1,10,0);
c1.getpoint(point2,10,10);
int ret = c1.distence(point1, point2);
int c = c1.m_r * c1.m_r;
if (c == ret)
cout << "点在圆上" << endl;
else if (c < ret)
cout << "点在圆外" << endl;
else
cout << "点在圆内" << endl;
return 0;
}

这里我在赋值的时候,采用在类Cube中定义一个函数getpoint进行赋值,但是这样是不行的,因为它的作用域是在getpoint函数中,也就是说在后面的distence函数中用的X,Y的值还是初始值,这样ret永远都是0,注意函数的作用域。


如有不对,欢迎指正