gpt4 book ai didi

c++ - 统一和值(value)初始化

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:43:16 26 4
gpt4 key购买 nike

<分区>

我尝试对构造函数使用值初始化的成员使用值初始化(我不知道我是否真的使用了好的术语......)

所以...当我定义:

struct A
{
int a_;
};

我可以使用:

A a{5};
assert(m.a_==5);

但是,如果我想使用成员大括号初始化器和初始化列表构造器

struct B
{
int b_ {1};
};

这无法编译(c++14:http://ideone.com/MQ1FMU):

B b{2};

这里是错误:

prog.cpp:19:7: error: no matching function for call to 'B::B(<brace-enclosed initializer list>)'
B b{2};
^
prog.cpp:19:7: note: candidates are:
prog.cpp:10:8: note: constexpr B::B()
struct B
^
prog.cpp:10:8: note: candidate expects 0 arguments, 1 provided
prog.cpp:10:8: note: constexpr B::B(const B&)
prog.cpp:10:8: note: no known conversion for argument 1 from 'int' to 'const B&'
prog.cpp:10:8: note: constexpr B::B(B&&)
prog.cpp:10:8: note: no known conversion for argument 1 from 'int' to 'B&&'

概念上有什么区别?非常感谢!

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