[英]complex<> using list initializer vs constructor?
我正在阅读 Stroustrup C++ 第 4 版。 第 162 页类型和声明。 具体来说,允许以下构造complex<>
object。
该书评论案例A是“使用构造函数”。 案例A真的是一个列表初始化程序,初始化的构造函数方法是在B或C中执行的吗?
#include <iostream>
#include <complex>
using namespace std;
int main(int argc, char *argv[])
{
complex<double> z = { 0, 3.14 }; // A
complex<double> h(0, 3.14); // B
complex<double> i{0, 3.14}; // C
return 0;
}
complex<double> z = { 0, 3.14 }; // A
complex<double> z = { 0, 3.14 }; // A
执行 复制列表初始化(C++11 起)。
complex<double> h(0, 3.14); // B
complex<double> h(0, 3.14); // B
执行直接初始化。
complex<double> i{0, 3.14}; // C
complex<double> i{0, 3.14}; // C
执行 直接列表初始化(C++11 起)。
这种情况下的效果都是一样的; 对象由构造函数complex::complex(double, double)
初始化。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.