我正在阅读Stroustrup C ++ 4th Ed。 Page 162类型和声明。具体来说,允许以下对象构造complex<>
对象。
在书中,案例 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;
}
答案 0 :(得分:0)
complex<double> z = { 0, 3.14 }; // A
执行copy-list-initliazation(自C ++ 11起)。
complex<double> h(0, 3.14); // B
执行direct initliazation。
complex<double> i{0, 3.14}; // C
执行direct-list-initliazation(自C ++ 11起)。
在这种情况下,效果都是相同的;对象由constructor complex::complex(double, double)
初始化。