继承中子类调用基类构造函数在C++的继承中,子类的构造函数初始化列表会按照基类的构造函数参数顺序,对基类进行初始化。如果你不显式地在子类的构造函数初始化列表中调用基类的构造函数,C++会自动调用基类的默认构造函数(如果存在的话)。所以
class Dot{
private:
double x,y;
public:
Dot(double x=0,double y=0):x(x),y(y){
cout<<"Dot constructor called"<<endl;
}
};
class Circle:Dot{
private:
double radius;
public:
Circle(double x,double y,double r):x(x),y(y),radius(r){
cout<<"Circle constructor called"<<endl;
}
我想在子类中想调用基类就需要将Circle(double x,double y,double r):x(x),y(y),radius(r)这一部分改为Circle(double x,double y,double r):Dot(x,y),radius(r)简而言之,: Dot(x, y)确保使用 Dot类的两个参数构造函数来初始化基类对象。