最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C++全面細致講解復(fù)數(shù)類

 更新時間:2022年06月01日 10:01:08   作者:清風(fēng)自在 流水潺潺  
本文章向大家介紹C++ 標準庫中的復(fù)數(shù)類,主要包括C++ 標準庫中的復(fù)數(shù)類使用實例、應(yīng)用技巧、基本知識點總結(jié)和需要注意事項,具有一定的參考價值,需要的朋友可以參考一下

一、復(fù)數(shù)類應(yīng)該具有的操作

  • 運算:+,- ,*,/
  • 比較:== ,! =
  • 賦值:=
  • 求模:modulus

二、利用操作符重載

統(tǒng)一復(fù)數(shù)與實數(shù)的運算方式

統(tǒng)—復(fù)數(shù)與實數(shù)的比較方式

下面來看一下復(fù)數(shù)類的實現(xiàn):

Complex.h:

#ifndef _COMPLEX_H_
#define _COMPLEX_H_
class Complex
{
    double a;
    double b;
public:
    Complex(double a = 0, double b = 0);
    double getA();
    double getB();
    double getModulus();
    Complex operator + (const Complex& c);
    Complex operator - (const Complex& c);
    Complex operator * (const Complex& c);
    Complex operator / (const Complex& c);
    bool operator == (const Complex& c);
    bool operator != (const Complex& c);
    Complex& operator = (const Complex& c);
};
#endif

Complex.cpp:

#include "Complex.h"
#include "math.h"
Complex::Complex(double a, double b)
{
    this->a = a;
    this->b = b;
}
double Complex::getA()
{
    return a;
}
double Complex::getB()
{
    return b;
}
double Complex::getModulus()
{
    return sqrt(a * a + b * b);
}
Complex Complex::operator + (const Complex& c)
{
    double na = a + c.a;
    double nb = b + c.b;
    Complex ret(na, nb);
    return ret;
}
Complex Complex::operator - (const Complex& c)
{
    double na = a - c.a;
    double nb = b - c.b;
    Complex ret(na, nb);
    return ret;
}
Complex Complex::operator * (const Complex& c)
{
    double na = a * c.a - b * c.b;
    double nb = a * c.b + b * c.a;
    Complex ret(na, nb);
    return ret;
}
Complex Complex::operator / (const Complex& c)
{
    double cm = c.a * c.a + c.b * c.b;
    double na = (a * c.a + b * c.b) / cm;
    double nb = (b * c.a - a * c.b) / cm;
    Complex ret(na, nb);
    return ret;
}
bool Complex::operator == (const Complex& c)
{
    return (a == c.a) && (b == c.b);
}
bool Complex::operator != (const Complex& c)
{
    return !(*this == c);
}
Complex& Complex::operator = (const Complex& c)
{
    if( this != &c )
    {
        a = c.a;
        b = c.b;
    }
    return *this;
}

test.cpp:

#include <stdio.h>
#include "Complex.h"
int main()
{
    Complex c1(1, 2);
    Complex c2(3, 6);
    Complex c3 = c2 - c1;
    Complex c4 = c1 * c3;
    Complex c5 = c2 / c1;
    printf("c3.a = %f, c3.b = %f\n", c3.getA(), c3.getB());
    printf("c4.a = %f, c4.b = %f\n", c4.getA(), c4.getB());
    printf("c5.a = %f, c5.b = %f\n", c5.getA(), c5.getB());
    Complex c6(2, 4);
    printf("c3 == c6 : %d\n", c3 == c6);
    printf("c3 != c4 : %d\n", c3 != c4);
    (c3 = c2) = c1;
    printf("c1.a = %f, c1.b = %f\n", c1.getA(), c1.getB());
    printf("c2.a = %f, c2.b = %f\n", c2.getA(), c2.getB());
    printf("c3.a = %f, c3.b = %f\n", c3.getA(), c3.getB());
    return 0;
}

輸出結(jié)果如下:

三、注意事項

  • C++ 規(guī)定賦值操作符(=)只能重載為成員函數(shù)
  • 操作符重載不能改變原操作符的優(yōu)先級
  • 操作符重載不能改變操作數(shù)的個數(shù)
  • 操作符重載不應(yīng)改變操作符的原有語義

四、小結(jié)

  • 復(fù)數(shù)的概念可以通過自定義類實現(xiàn)
  • 復(fù)數(shù)中的運算操作可以通過操作符重載實現(xiàn)
  • 賦值操作符只能通過成員函數(shù)實現(xiàn)
  • 操作符重載的本質(zhì)為函數(shù)定義

到此這篇關(guān)于C++全面細致講解復(fù)數(shù)類的文章就介紹到這了,更多相關(guān)C++復(fù)數(shù)類內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • C語言實現(xiàn)enum枚舉

    C語言實現(xiàn)enum枚舉

    在實際編程中,有些數(shù)據(jù)的取值往往是有限的,只能是非常少量的整數(shù),并且最好為每個值都取一個名字,以方便在后續(xù)代碼中使用,比如一個星期只有七天,一年只有十二個月,一個班每周有六門課程等。 以每周七天為例,我們可以使用#define命令來給每天指定一個名字
    2021-06-06
  • c++將vector迭代器轉(zhuǎn)換為指針的實現(xiàn)方式

    c++將vector迭代器轉(zhuǎn)換為指針的實現(xiàn)方式

    這篇文章主要介紹了c++將vector迭代器轉(zhuǎn)換為指針的實現(xiàn)方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-11-11
  • 將Deepseek接入本地Vscode的圖文步驟

    將Deepseek接入本地Vscode的圖文步驟

    本文主要介紹了將Deepseek接入本地Vscode的圖文步驟,文中通過圖文介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2025-02-02
  • VSCode遠程代碼開發(fā)及DNS隧道端口轉(zhuǎn)發(fā)實現(xiàn)遠程辦公代碼

    VSCode遠程代碼開發(fā)及DNS隧道端口轉(zhuǎn)發(fā)實現(xiàn)遠程辦公代碼

    這篇文章主要介紹了VSCode遠程代碼開發(fā)及DNS隧道端口轉(zhuǎn)發(fā)實現(xiàn)遠程辦公,本文通過圖文并茂的形式給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-04-04
  • QT實現(xiàn)簡單TCP通信

    QT實現(xiàn)簡單TCP通信

    這篇文章主要為大家詳細介紹了QT實現(xiàn)簡單的TCP通信,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-08-08
  • C++實現(xiàn)猜數(shù)游戲

    C++實現(xiàn)猜數(shù)游戲

    這篇文章主要為大家詳細介紹了C++實現(xiàn)猜數(shù)游戲,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-05-05
  • C++ pair方法與vector方法案例詳解

    C++ pair方法與vector方法案例詳解

    這篇文章主要介紹了C++ pair方法與vector方法案例詳解,本篇文章通過簡要的案例,講解了該項技術(shù)的了解與使用,以下就是詳細內(nèi)容,需要的朋友可以參考下
    2021-09-09
  • 簡要對比C語言中三個用于退出進程的函數(shù)

    簡要對比C語言中三個用于退出進程的函數(shù)

    這篇文章主要介紹了C語言中三個用于退出進程的函數(shù)的對比,分別為_exit()函數(shù)和on_exit()函數(shù)以及atexit()函數(shù),需要的朋友可以參考下
    2015-08-08
  • C++基于消息隊列的多線程實現(xiàn)示例代碼

    C++基于消息隊列的多線程實現(xiàn)示例代碼

    這篇文章主要給大家介紹了關(guān)于C++基于消息隊列的多線程實現(xiàn)的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家學(xué)習(xí)或者使用C++具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-04-04
  • C++ 中RTTI的使用方法詳解

    C++ 中RTTI的使用方法詳解

    這篇文章主要介紹了C++ 中RTTI的使用方法詳解的相關(guān)資料,希望通過本文大家能理解使用RTTI,需要的朋友可以參考下
    2017-09-09

最新評論

南郑县| 嘉定区| 兴化市| 恩施市| 甘谷县| 凤城市| 永顺县| 卢氏县| 福建省| 涞源县| 锡林郭勒盟| 土默特右旗| 石台县| 龙胜| 万源市| 兴山县| 色达县| 福清市| 巴马| 宝丰县| 金寨县| 准格尔旗| 合水县| 射阳县| 龙门县| 青州市| 甘德县| 曲阳县| 克拉玛依市| 曲周县| 饶平县| 榆林市| 屏山县| 长垣县| 新和县| 伊通| 黔东| 东方市| 龙胜| 托克逊县| 鄂伦春自治旗|