簡體   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