云服务器免费试用

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

服务器知识 0 262

在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://solustack.com/170621.html

相关推荐:

网友留言:

我要评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。