回覆列表
  • 1 # 藍風24

    complex庫中的模板complex提供了一個複數型別,它與其他數值型別相容。在早期的C++庫中,complex並不是一個模板,它只是基於下列資料描述的一種型別:

    class complex{

    // ……methods

    private:

    double x, y;

    };

    現在complex則由以下模板描述:

    template

    class complex{

    // ……methods

    private:

    SCALAR x, y;

    };

    這使使用者能夠根據需要決定基本型別的精度。一般來說,這些基本型別是float、double或者long double。下面是用於測試這個型別的簡單程式碼。

    檔案 complex.cpp

    #include

    #include

    using namespace std;

    int main()

    {

    complex

    cout

    y = x + 1.0;

    cout

    // if (x

    // cout

    }

    complex型別對科學家和工程師來說很重要,它說明了將C++擴充套件到新的領域是多麼容易的事情。例如,許多科學家使用FORTRAN90程式設計,原因就是FORTRAN90中有複數型別。因此,C++實際上已經能夠取代需要複數型別的FORTRAN程式。

    注意註釋掉的行是如何使用小於運算子的。在標準庫中沒有為complex型別定義該運算子,所以在對該模板例項化時編譯將失敗。如果讀者自己定義了這個運算子,可以過載該運算子,執行上述程式碼。

  • 中秋節和大豐收的關聯?
  • 小兒打預防針後,會有哪些不良反應?