C + +适当的默认构造函数可用

时间:2018-11-25 16:08:29

标签: c++ constructor

有人知道为什么会出现此错误“'Shape':没有合适的默认构造函数”,该怎么办?

Circle::Circle(const Point& center, double radius, const string& type, const string& name):
    _center(center), _radius(radius)
{
    this->_name = name;
    this->_type = type;
}

Shape::Shape(const string& name, const string& type):
    _name(name), _type(type)
{
}

1 个答案:

答案 0 :(得分:3)

Circle::Circle(const Point& center, double radius, const string& type, const string& name):
    Shape(name, type), _center(center), _radius(radius) {}

在构造函数初始值设定项列表中,需要为基类的构造函数指定参数。如果不这样做,编译器将尝试使用默认构造函数,但是显然Shape没有一个构造函数。