21xrx.com
2024-12-23 00:02:38 Monday
登录
文章检索 我的文章 写文章
C++子类构造函数中如何初始化父类?
2023-07-02 10:35:57 深夜i     --     --
C++ 子类 构造函数 初始化 父类

在C++中,子类构造函数可以通过调用父类构造函数来初始化父类。由于父类是子类的一部分,因此必须在子类构造函数中显式调用父类的构造函数来初始化父类。以下是几种常见的初始化父类的方法:

1. 在子类构造函数的初始化列表中调用父类构造函数。例如:


class Parent {

public:

 Parent(int x)  // 父类构造函数

  // ...

 

};

class Child : public Parent {

public:

 Child(int x, int y) : Parent(x), m_y(y) // 子类构造函数

  // ...

 

private:

 int m_y;

};

在此示例中,子类 `Child` 的构造函数通过调用父类构造函数来初始化 `Parent`。注意,父类构造函数必须在子类的构造函数初始化列表中首先被调用。

2. 在子类构造函数的函数体中调用父类构造函数。例如:


class Parent {

public:

 Parent(int x)  // 父类构造函数

  // ...

 

};

class Child : public Parent {

public:

 Child(int x, int y) : m_y(y) { // 子类构造函数

  Parent(x); // 调用父类构造函数

  // ...

 }

private:

 int m_y;

};

在此示例中,子类 `Child` 的构造函数在函数体中调用父类构造函数来初始化 `Parent`。虽然这种方法也可以工作,但是它需要子类实现更多的代码。

总的来说,无论使用哪种方法,子类构造函数都必须显式调用父类构造函数来初始化父类。这是因为在创建子类对象时,必须先初始化父类,然后才能初始化子类。在实际编程中,设计良好的类层次结构应该具有适当的构造函数,以便正确地初始化父类和子类对象。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复