繁体   English   中英

使用列表初始化器与构造器的复杂<>?

[英]complex<> using list initializer vs constructor?

我正在阅读 Stroustrup C++ 第 4 版。 第 162 页类型和声明。 具体来说,允许以下构造complex<> object。

该书评论案例A是“使用构造函数”。 案例A真的是一个列表初始化程序,初始化的构造函数方法是在BC中执行的吗?

#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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM