![]() |
1
224
考虑:
现在
或者,初始化
|
![]() |
2
35
问题是,有人可能会在构造函数中看到成员初始化器的列表,并认为它们是按该顺序执行的(先是j,然后是i)。它们不是,它们是按照类中定义成员的顺序执行的。
假设你写了
警告提醒你写
|
![]() |
3
14
其他答案也提供了一些很好的例子来证明警告的选择是正确的。我想我会提供一些历史背景。C++的创造者,Bjarne Stroustrup,在他的书中解释 The C++ programming language (第3版,第259页):
|
![]() |
4
9
如果初始值设定项有副作用,这会咬你。考虑:
上面将打印“bar”,然后打印“foo”,即使凭直觉我们会假设顺序是写在初始值设定项列表中的。
或者,如果
当一个成员的初始值设定项引用另一个成员时,它也可以显示自己。 |
![]() |
5
6
警告存在,因为如果您刚刚读取构造函数,它看起来像
当您只查看构造函数时,
看
安全。但实际上,
|
![]() |
rookie · 检查函数模板的所有参数包参数是否属于int 1 年前 |
![]() |
ivaigult · -W转换和隐式字符串到布尔类型转换 1 年前 |
![]() |
rainer · 后台插入程序的初始化 1 年前 |
![]() |
Community wiki · 以理智、安全和高效的方式复制文件 1 年前 |
|
Shefali Kanaujia · 对C中向量的向量进行排序++ 1 年前 |
|
Ma Joonyoung · 粗粒度和细粒度链表的时间比较 1 年前 |