21xrx.com
2025-03-22 13:57:39 Saturday
文章检索 我的文章 写文章
如何在C++中让子类构造函数调用父类构造函数?
2023-06-22 09:37:12 深夜i     58     0
C++ 子类构造函数 父类构造函数 调用 继承

在C++中,子类构造函数可以通过调用父类构造函数来初始化父类的成员变量。这个过程通常称为子类构造函数初始化列表。子类构造函数初始化列表是在子类构造函数的函数体之前执行的,用于初始化父类的成员变量,以及自身的成员变量。

下面是一个示例,演示如何在子类构造函数中调用父类构造函数。

#include <iostream>
class Parent {
public:
  Parent(int x)
    std::cout << "Parent constructor called." << std::endl;
    this->x = x;
  
private:
  int x;
};
class Child : public Parent {
public:
  Child(int x, int y) : Parent(x)
    std::cout << "Child constructor called." << std::endl;
    this->y = y;
  
private:
  int y;
};
int main() {
  Child c(1, 2);
  return 0;
}

在这个示例中,子类 Child 继承自父类 Parent。Child 的构造函数包含两个参数,x 和 y。为了初始化父类的 x 成员变量,子类的构造函数必须调用父类的构造函数。在这个示例中,Child 的构造函数调用 Parent 的构造函数,并向其传递参数 x。

执行这个程序时,输出应该是:

Parent constructor called.
Child constructor called.

首先调用了父类的构造函数,然后调用了子类的构造函数。

总之,在 C++ 中,子类可以通过调用父类构造函数来初始化父类的构造函数和自身的成员变量。在子类构造函数中,通过初始化列表调用父类构造函数,可以实现这一点。在实际编程中,父类构造函数的初始化列表是一个重要的设计模式,可以提高代码的可读性和复用性。

  
  

评论区