类和对象 封装中的一个小问题

为什么circle类里面的point center可以直接这样写出来啊,这样写出来是表示什么呢

//点类
class point
{
public:
    //设置x坐标
    void setX(int X)
    {
        x=X;
    }
    //获取x坐标 
    int getX()
    {
        return x;
    }
    void setY(int Y)
    {
        y=Y;
    }
    int getY()
    {
        return y;
    }
private:
    int x;
    int y;    
 } ;


class circle
{
public:
    //设置半径
    void setR(int R)
    {
        r=R;
     } 
    int getR()
    {
        return r;
    }
    void steCenter(point center)
    {
        center=center;
    }
    int getCenter()
    {
        return center;
    }
private:
    int r;
    point center;
};

还有一个问题是为什么getCenter那里说不发转移point啊

圆类有2个属性,1个半径,1个中心点,中心点有x和y坐标,这就是point center的意思
getCenter函数的返回值类型是point,不是int

void steCenter(point center)
{
center=center;
}
这种写法是不对的