#include<iostream>
using namespace std;
class point
{
private:
double x, y;
public:
point(double t, double b)
{
x = t;
y = b;
}
void display()
{
cout << "(" << x << "," << y << ")" << endl;
}
};
class circle :public point
{
private:
double r;
point p1;
public:
circle(double t, double b, double z) :point(t, b)
{
r = z;
}
void display1()
{
cout << "圆心位于:"; p1.display(); cout << endl;
cout << "该圆的半径为:" << r << endl;
}
};
void main()
{
circle c1(1, 1, 1);
c1.display1();
cout << endl;
}
circle类在运行时显示没有构造函数,请帮忙
定义一个无参数的构造函数,如下:
point(){}
c++编译器的规则是当类中用户没有提供构造函数的时候,编译器会默认提供一个够造函数;只是这个默认的构造函数,没有任何参数;
这里之所以提示:没有合适的默认构造函数是因为你的circle类中组合了point类,即circle类中的一个成员是point类,所以编译器在初始化你的c1
对象的时候,会先去调用基类point的构造函数,接着执行自身的double r的构造函数,接着在去执行 point p1;对象的构造函数,但此时基类point中
没有提供无参数的构造函数,所以会报错,因此只要提供了上面写的无参数构造函数,就可以成功运行了;
用double类型。要类型跟参数一致。circle c1(1.0, 1.0, 1.0);
望楼主采纳!^ - ^ ^ - ^ -^