首页 > 解决方案 > 使用列表初始化器与构造器的复杂<>?

问题描述

我正在阅读 Stroustrup C++ 第 4 版。第 162 页类型和声明。具体来说,这里允许构造一个complex<>对象。

该书评论案例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;
}

标签: c++c++11initialization

解决方案


这种情况下的效果都是一样的;对象由构造函数 complex::complex(double, double)初始化。


推荐阅读