gpt4 book ai didi

c++ - 成员初始化列表顺序

转载 作者:太空宇宙 更新时间:2023-11-03 10:40:03 25 4
gpt4 key购买 nike

<分区>

经过多次简化我的代码后,我发现了以下导致问题的原因。

class B {
public:
B(const int x)
:_x(x) {}
const int _x;
};

class C {
public:
C(const B& b)
: _b(b), _b2(_b._x) {}
B _b2; // line 1
const B& _b; // line 2
};

int main() {
B b(1);
C c(b);
}

警告( clang 8.0.0)

test16.cpp:11:22: warning: reference '_b' is not yet bound to a value when used here [-Wuninitialized]
: _b(b), _b2(_b._x) {}
^
1 warning generated.

g++-6编译程序。运行程序导致段错误。

类成员的初始化是按照成员初始化列表(: _b(b), _b2(_b._x))的顺序还是类中成员的顺序(像 B _b2; const B& _b;) ?

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com