我有 1 个父类(“区域”)和一些子类(“圆”、“多边形”等)。其中一个虚拟继承函数的行为非常奇怪——它的输入参数在运行时消失(在调试模式下可见)。它使一些记忆奇怪的错误..你有什么想法吗?(让我们假设 Segment 类运行良好)
class Point {
int x, y;
public:
Point(){};
Point(int xP, int yP):x(xP), y(yP){}
};
class Area {
public:
virtual ~Area() {
}
virtual bool contains(const Point& p1) const=0;
};
class Circle: public Area {
double radius;
Point center;
public:
~Circle() {}
Circle(double radiusP, Point centerP) :
radius(radiusP), center(centerP) {}
bool contains(const Point& p1) const;
};
以及函数的定义(包含):
bool Circle::contains(const Point& p1) const {
return Segment(center, p1).getLength() < radius;
}