面试真题

C++ · 中等 · 小米

类成员初始化顺序?

中等 C++ 🎤 小米
参考答案
结论:C++类成员初始化顺序固定为:静态成员(程序启动)->基类构造->按声明顺序初始化非静态成员->构造函数体。要点:1)静态成员变量在首次使用前初始化,且只一次;2)基类构造函数先于派生类;3)非静态成员按在类内声明的先后顺序初始化,与构造函数初始化列表顺序无关;4)虚基类优先于非虚基类。示例:class Der: public Base { int a; int b; },构造Der时先Base,再a后b,即便初始化列表写(b,a)也无效。
题目整理自公开面经,答案由校招宝自研生成,仅供参考