21xrx.com
2025-07-13 06:18:20 Sunday
登录
文章检索 我的文章 写文章
如何在C++子类中初始化父类成员?
2023-07-09 01:01:12 深夜i     70     0
C++ 子类 父类成员 初始化

在C++中,子类(派生类)可以继承父类(基类)的成员变量和方法。在一些情况下,子类需要初始化它继承的父类的成员变量。这篇文章将介绍如何在C++子类中初始化父类成员。

在C++中,子类可以通过调用父类的构造函数来初始化父类成员变量。默认情况下,如果子类没有提供构造函数,则编译器会自动生成一个默认的构造函数,该构造函数调用父类的默认构造函数来初始化父类成员变量。如果子类提供了构造函数,则必须在构造函数中显式调用父类的构造函数来初始化父类成员变量。

下面是一个示例代码:

#include <iostream>
class Base {
public:
  Base(int x) : value(x) {}
  int value;
};
class Sub : public Base {
public:
  Sub(int x, int y) : Base(x), another_value(y) {}
  int another_value;
};
int main() {
  Sub sub(1, 2);
  std::cout << sub.value << std::endl;     // output: 1
  std::cout << sub.another_value << std::endl; // output: 2
  return 0;
}

在上面的示例代码中,我们通过在子类的构造函数中调用父类的构造函数来初始化父类的成员变量。具体来讲,子类Sub的构造函数接收两个参数x和y,它将x传递给父类的构造函数Base(x)来初始化父类成员变量value,同时它将另外一个参数y赋值给自己的成员变量another_value。

总结来说,在C++中,子类可以通过调用父类的构造函数来初始化父类的成员变量。子类的构造函数必须在初始化列表中显式调用父类的构造函数,以确保父类的成员变量被正确初始化。

  
  

评论区