Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2008/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用花括号进行结构初始化 在C++项目中看到了下面的一些代码: struct Foo{ std::wstring x; //blah } // this func returns a Foo object Foo getFoo(){ //blah } void main() { Foo obj{getFoo()}; //why can initialize by another Foo object in {}? }_C++ - Fatal编程技术网

使用花括号进行结构初始化 在C++项目中看到了下面的一些代码: struct Foo{ std::wstring x; //blah } // this func returns a Foo object Foo getFoo(){ //blah } void main() { Foo obj{getFoo()}; //why can initialize by another Foo object in {}? }

使用花括号进行结构初始化 在C++项目中看到了下面的一些代码: struct Foo{ std::wstring x; //blah } // this func returns a Foo object Foo getFoo(){ //blah } void main() { Foo obj{getFoo()}; //why can initialize by another Foo object in {}? },c++,C++,{}是列表初始化。但是这里没有列出Foo参数。为什么这样做有效?结构是否有默认的复制构造函数 那么Foo obj(getFoo())是否有效?与使用{}的方式有任何区别吗?这是拷贝初始化。它调用隐式声明的复制构造函数。资料来源:,1Foo具有隐式声明的复制构造函数;2. Foo obj(getFoo())也可以工作;3.这里也有同样的效果。

{}
是列表初始化。但是这里没有列出
Foo
参数。为什么这样做有效?结构是否有默认的复制构造函数


那么
Foo obj(getFoo())
是否有效?与使用
{}
的方式有任何区别吗?

这是拷贝初始化。它调用隐式声明的复制构造函数。资料来源:,

1
Foo
具有隐式声明的复制构造函数;2. <代码>Foo obj(getFoo())也可以工作;3.这里也有同样的效果。