首页 >后端开发 >C++ >成员初始化列表在 C 构造函数中如何工作?

成员初始化列表在 C 构造函数中如何工作?

Susan Sarandon
Susan Sarandon原创
2024-12-16 06:35:14576浏览

How Do Member Initialization Lists Work in C   Constructors?

构造函数中的成员初始化列表

在 C 中,构造函数后面的冒号后跟表达式是成员初始化列表的一部分。它有两个主要目的:

1。调用基类构造函数

在派生类中,成员初始化列表可用于指定调用基类构造函数的参数。例如,在以下代码中:

class demo
{
public:
    demo(unsigned char le = 5, unsigned char default) : len(le)
    {
        // Body of the constructor
    }
};

class newdemo : public demo
{
public:
    newdemo() : demo(0, 0)
    {
        // Body of derived class constructor
    }
};

newdemo 构造函数中的 : demo(0, 0) 语法使用参数 0 和 0 调用 demo 基类的构造函数。

2.初始化数据成员

在执行构造函数体之前,可以使用成员初始化列表来初始化类的数据成员。这对于无法在构造函数主体中赋值的 const 成员特别有用。例如:

class Demo
{
public:
    Demo(int& val) : m_val(val)
    {
        // Body of constructor
    }

private:
    const int& m_val;
};

在此示例中,: m_val(val) 语法使用构造函数参数 val 的值初始化 m_val const 引用数据成员。

以上是成员初始化列表在 C 构造函数中如何工作?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn