首页主机资讯C++类成员的初始化顺序是什么

C++类成员的初始化顺序是什么

时间2024-08-26 17:44:04发布访客分类主机资讯浏览1288
导读:在C++中,类成员的初始化顺序是按照它们在类中声明的顺序进行的,而不是按照初始化列表中的顺序。在类的构造函数中,初始化列表中的成员变量的初始化顺序并不会影响实际初始化顺序,而是按照它们在类中声明的顺序进行初始化。 例如,考虑以下示例代码:...

在C++中,类成员的初始化顺序是按照它们在类中声明的顺序进行的,而不是按照初始化列表中的顺序。在类的构造函数中,初始化列表中的成员变量的初始化顺序并不会影响实际初始化顺序,而是按照它们在类中声明的顺序进行初始化。

例如,考虑以下示例代码:

#include <
    iostream>


class MyClass {

public:
    MyClass(int a, int b) : b_(b), a_(a) {
}


    void print() {
    
        std::cout <
    <
     "a: " <
    <
     a_ <
    <
     ", b: " <
    <
     b_ <
    <
     std::endl;

    }
    

private:
    int a_;
    
    int b_;

}
    ;


int main() {
    
    MyClass obj(10, 20);
    
    obj.print();
    

    return 0;

}
    

在上面的示例中,类MyClass中有两个成员变量a_b_,它们的初始化顺序是按照它们在类中声明的顺序进行的,而不是按照构造函数的初始化列表中的顺序。因此,a_会先于b_被初始化,即使在构造函数的初始化列表中把b_放在了a_前面。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: C++类成员的初始化顺序是什么
本文地址: https://pptw.com/jishu/695779.html
如何在C++中进行有效初始化 Java中stdin的编码问题处理

游客 回复需填写必要信息