类声明的方式(问题在注解上)
答案:1 悬赏:80 手机版
解决时间 2021-04-13 20:40
- 提问者网友:活着好累
- 2021-04-13 13:23
类声明的方式(问题在注解上)
最佳答案
- 五星知识达人网友:何以畏孤独
- 2021-04-13 14:30
IsInCircle 根本不该作为成员函数——有了 IsInCircle 是不是以后要加 IsInRectangle / IsInPentagon / IsInEllipse,这样每次想加都要修改类定义实在是折腾。有了这种习惯,以后与别人共事也会被一眼看出编程水平不高。
提供外人能用的接口然后再这些接口之上构建 IsIn* 函数就好了。而且也不会遇到目前这种问题
非要维持现在的写法的话,就要把 CPoint::Is::InCircle 放在 类 CCircle 之后
class CCircle;
class CPoint
{
unsigned x;
unsigned y;
public:
bool IsInCircle(CCircle *Circle);
};
class CCircle
{
unsigned Radius;
public:
CPoint Center;
};
inline bool CPoint::IsInCircle(CCircle *Circle)
{
return (((x-Circle->Center.x)*(x-Circle->Center.x)
+(y-Circle->Center.y)*(y-Circle->Center.y))<=Circle->Radius*Circle->Radius);
}
提供外人能用的接口然后再这些接口之上构建 IsIn* 函数就好了。而且也不会遇到目前这种问题
非要维持现在的写法的话,就要把 CPoint::Is::InCircle 放在 类 CCircle 之后
class CCircle;
class CPoint
{
unsigned x;
unsigned y;
public:
bool IsInCircle(CCircle *Circle);
};
class CCircle
{
unsigned Radius;
public:
CPoint Center;
};
inline bool CPoint::IsInCircle(CCircle *Circle)
{
return (((x-Circle->Center.x)*(x-Circle->Center.x)
+(y-Circle->Center.y)*(y-Circle->Center.y))<=Circle->Radius*Circle->Radius);
}
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯