派生类调用基类构造函数

  • 格式:docx
  • 大小:36.84 KB
  • 文档页数:3

派生类调用基类构造函数

在C++中,派生类调用基类构造函数有两种方式:一种是使用基类的默认构造函数,另一种是使用基类的有参构造函数。

使用基类的默认构造函数:

当基类的构造函数没有参数时,我们可以直接在派生类的构造函数中调用基类的构造函数,如下所示:

class Base

public:

Bas

cout << "基类的默认构造函数被调用" << endl;

}

};

class Derived: public Base

public:

Derive

cout << "派生类的默认构造函数被调用" << endl;

}

};

int mai Derived obj;

return 0;

输出结果为:

基类的默认构造函数被调用

派生类的默认构造函数被调用

在这个例子中,派生类 Derived 继承了基类 Base 的成员,当创建

Derived 对象时,会先调用基类 Base 的构造函数,再调用派生类

Derived 的构造函数。

如果基类的构造函数是带参数的,同时派生类的构造函数也是带参数的,则需要使用初始化列表来调用基类的构造函数。

使用基类的有参构造函数:

当基类的构造函数带有参数时,派生类在调用基类的构造函数时需要使用初始化列表来传递参数,如下所示:

class Base

public:

Base(int x)

cout << "基类的有参构造函数被调用,参数为:" << x << endl;

}

};

class Derived: public Base public:

Derived(int y): Base(y)

cout << "派生类的有参构造函数被调用,参数为:" << y << endl;

}

};

int mai

Derived obj(10);

return 0;

输出结果为:

基类的有参构造函数被调用,参数为:10

派生类的有参构造函数被调用,参数为:10

在这个例子中,基类 Base 的构造函数带有 int 类型的参数,派生类 Derived 在调用基类构造函数时使用初始化列表传递参数。派生类的构造函数也可以带有其他参数,并使用初始化列表来传递给基类构造函数。

总结一下,派生类调用基类构造函数的方式有两种:使用基类的默认构造函数和使用基类的有参构造函数。使用初始化列表传递参数是保证基类成员变量正确初始化的关键。这样做的好处是能够减少冗余代码,提高代码的复用性和可维护性。同时,派生类调用基类构造函数也是面向对象编程中的一种封装和继承的体现。