花括号初始化如何工作?

时间:2020-03-16 17:50:33

标签: c++ oop initialization

首先,我发现术语“初始化列表”用于两个看似不同的事物:使用像Foo foo{1}这样的花括号初始化类,并使用Foo::Foo(int test) : m_test(test)语法编写构造函数。这两个是连通的还是我只是混在一起?

现在是我的实际问题。 I've read请注意,花括号初始化不允许缩小。但是,那不是唯一的区别。

struct Test {
    int one;
    int two;
};

int main() {
    Test test{1, 2};
}

即使未声明Test::Test(int,int),此代码也有效。那么花括号初始化与普通初始化究竟有何不同?它只是语法糖还是存在它的更深层次原因?

0 个答案:

没有答案