c++ - 花括号初始化如何工作?
问题描述
首先,我发现术语“初始化列表”用于两个看似不同的事物:使用像这样的花括号初始化类Foo foo{1}
和使用这样的语法编写构造函数Foo::Foo(int test) : m_test(test)
。这两个是有联系的还是我只是把事情搞混了?
现在到我的实际问题。我读过花括号初始化不允许缩小。然而,这不可能是唯一的区别。
struct Test {
int one;
int two;
};
int main() {
Test test{1, 2};
}
此代码有效,即使在Test::Test(int,int)
任何地方都没有声明。那么花括号初始化与普通初始化到底有什么不同呢?它只是语法糖,还是有更深层次的原因来解释它的存在?
解决方案
推荐阅读
- r - 字幕颜色变为 fgcolor (knitr, Rnw)
- javascript - 热图传单未在 iOS 本机 WebView 上呈现
- process - 检测 Tcl 脚本是否在后台进程中运行
- html - 无法更改文本输入的背景颜色
- python - 在将字符串与字节进行比较时,你能让 Python3 出错吗
- python-3.x - 如何使用 Python 连接存储在 SharePoint 上的 MS Access DB
- linear-regression - 后向消除中的P值> 0.05从特征中消除,为什么要消除?(多变量线性回归)
- java - UVA 369-组合 | 模运算 | 二进制取幂
- neovim - 自动重新加载文件以及在 neovim 和自动重新加载 nerbtree
- python - 在python中加载整个html页面