在 C++ 中访问抽象类成员中的类



>我有一个类点,如下所示:

class Point {
private:
int x,y;
public:

Point(int x, int y){
setX(x);
setY(y);
}
Point(Point &copy){
x = copy.getX(); 
y = copy.getY();
}
int getX(){
return x;
}
int getY(){
return y;
}
void setX(int setx){
x = setx;
}
void setY(int sety){
y = sety;
}

void print(){
cout << "(" << getX() << "," << getY() << ")" << endl;
}
};

我正在尝试创建一个名为GeometricShape的抽象类,该类能够利用其构造函数中的一个点,然后在其成员中调用该点。

我尝试声明一个点,然后利用复制构造函数来构造几何形状。但是,如果没有"调用'Point::P oint(('几何形状(点坐标(的匹配函数",我似乎无法让它工作。

我还尝试在构造函数中声明该点:

Point ShapePoint = coord;

但是我无法访问打印成员中的形状点。

这是我目前所处的位置:

class GeometricShape{
Point ShapePoint;
public:
GeometricShape(Point coord){
ShapePoint = Point(coord);
}
virtual float getArea(){
return 0;
}
virtual float getPerimeter(){
return 0;
}
virtual void print(){
ShapePoint.print();
}
};

使用成员初始值设定项

GeometricShape(Point coord) 
: ShapePoint(coord)
{
}

我还建议将这一点作为常量参考const Point& coord以避免内存中不必要的副本。

最新更新