溫馨提示×

C++類成員的初始化順序是什么

c++
小樊
84
2024-08-24 02:37:31
欄目: 編程語言

在C++中,類成員的初始化順序是按照它們在類中聲明的順序進行的,而不是按照初始化列表中的順序。在類的構造函數(shù)中,初始化列表中的成員變量的初始化順序并不會影響實際初始化順序,而是按照它們在類中聲明的順序進行初始化。

例如,考慮以下示例代碼:

#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_,它們的初始化順序是按照它們在類中聲明的順序進行的,而不是按照構造函數(shù)的初始化列表中的順序。因此,a_會先于b_被初始化,即使在構造函數(shù)的初始化列表中把b_放在了a_前面。

0