1 つの親クラス (「エリア」) といくつかの子クラス (「円」、「ポリゴン」など) があります。仮想継承関数の 1 つが非常に奇妙な動作をします。実行時に入力パラメーターが消えます (デバッグ モードで表示されます)。それはいくつかのメモリ奇妙なエラーを引き起こします..何か考えはありますか?(セグメントクラスがうまく機能していると仮定しましょう)
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;
}