【发布时间】:2013-08-04 00:17:12
【问题描述】:
我在使用 C++ 中的子类时遇到问题。我有一个多边形类和一个三角形子类。我希望能够通过传递 Point* 的向量(这是一个自定义类)和 Triangle 通过传递三个 Point*s 来声明多边形。
我的理解是Triangle类的构造函数应该调用Polygon类的构造函数。
这是我目前所拥有的:
class Polygon
{
public:
vector<Point*> pts;
Polygon(vector<Point*> aPts) : pts(aPts) {};
};
class Triangle : public Polygon
{
public:
Triangle(Point* A, Point* B, Point* C)
{
vector<Point*> APts;
APts.push_back(A); APts.push_back(B); APts.push_back(C);
Polygon(APts);
}
};
但是,在 Triangle 构造函数的左括号上,我得到了错误:
error: no matching function call to 'Polygon::Polygon()'
有人可以帮忙吗?
【问题讨论】:
-
只能从初始化列表中调用父类的构造函数
-
为什么是指针向量?
标签: c++ inheritance