首页  >  文章  >  后端开发  >  C 构造函数中冒号运算符(“:”)的用途是什么?它与显式成员变量赋值有何不同?

C 构造函数中冒号运算符(“:”)的用途是什么?它与显式成员变量赋值有何不同?

Susan Sarandon
Susan Sarandon原创
2024-11-13 06:50:03268浏览

What is the purpose of the colon operator (

C 构造函数中的初始化器列表

提供的 C 代码中使用的冒号运算符(“:”)是成员初始化器列表的一部分,这是在构造函数中初始化类成员变量的一种方法。与问题中的建议相反,它并不等同于显式单独赋值。

在此示例中:

class MyClass {
public:

    MyClass() : m_classID(-1), m_userdata(0) { 
    }

    int m_classID;
    void *m_userdata;
};

构造函数 MyClass() 是初始化两个成员变量的默认构造函数、m_classID 和 m_userdata 分别设置为值 -1 和 0。这是使用成员初始值设定项列表完成的,该列表位于构造函数的参数列表之后并位于构造函数主体之前。

成员初始值设定项列表按照类成员变量在类中声明的顺序初始化它们。每个初始化都用逗号分隔。当构造函数被调用时,初始化列表中指定的值会立即分配给相应的成员变量。

相反,按照问题中的建议,在构造函数体内执行单独的赋值将导致显式更改已经初始化的值。这与成员初始值设定项列表执行的初始化不同。

因此,成员初始值设定项列表提供了一种在构造函数中初始化类成员变量的便捷方法,并且它与显式单独赋值不同。

以上是C 构造函数中冒号运算符(“:”)的用途是什么?它与显式成员变量赋值有何不同?的详细内容。更多信息请关注PHP中文网其他相关文章!

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