99re热这里只有精品视频,7777色鬼xxxx欧美色妇,国产成人精品一区二三区在线观看,内射爽无广熟女亚洲,精品人妻av一区二区三区

C++ 復(fù)數(shù)相關(guān)函數(shù)(二)

2023-03-20 16:50 更新

另外一個我們需要的操作則是乘法。不像加法那樣,乘法在極坐標(biāo)系中容易,在笛卡爾坐標(biāo)系中麻煩些(是相對有點(diǎn)麻煩而已)。
在極坐標(biāo)系,我們只需將模相乘,角度相加。像往常那樣,我們使用訪問函數(shù)來實(shí)現(xiàn)而不必關(guān)心對象的表現(xiàn)形式。

Complex mult (Complex& a, Complex& b) 
{ 
        double mag = a.getMag() * b.getMag() 
        double theta = a.getTheta() + b.getTheta(); 
        Complex product; 
        product.setPolar (mag, theta); 
        return product; 
} 

這兒我們遇到一個小問題,即我們沒有一個構(gòu)造函數(shù)來接收極坐標(biāo)系的值。添加這樣的一個構(gòu)造函數(shù)也可以,但是要記得只有在參數(shù)不同時才能重載一個函數(shù)(包括構(gòu)造函數(shù))。在這個例子中,我們要添加的構(gòu)造函數(shù)仍然是接收兩個浮點(diǎn)型的參數(shù),所以沒法重載。
另外一個辦法是提供一個訪問函數(shù)來設(shè)置變量的值,為使操作正常進(jìn)行,我們需要確保當(dāng)mag與theta的值被設(shè)定時,極坐標(biāo)的標(biāo)志位也要設(shè)置為真,同時還要確保笛卡爾坐標(biāo)系的標(biāo)志位設(shè)置為假。這是因?yàn)?,如果我們手動設(shè)置了極坐標(biāo)的值,笛卡爾坐標(biāo)系的值就會失效。

void Complex::setPolar (double m, double t) 
{ 
        mag = m;     theta = t; 
        cartesian = false; polar = true; 
} 

作為練習(xí),請寫出對應(yīng)的函數(shù)setCartesian。
為測試mult函數(shù),我們可以這樣做:
Complex c1 (2.0, 3.0);
Complex c2 (3.0, 4.0);

Complex product = mult (c1, c2);
product.printCartesian(); 該程序的輸出結(jié)果為:
-6 + 17i
在這個輸出的背后進(jìn)行了很多轉(zhuǎn)換。當(dāng)我們調(diào)用mult時,兩個參數(shù)為被轉(zhuǎn)換為極坐標(biāo)系的表示形式。結(jié)果也是極坐標(biāo)形式,當(dāng)我們調(diào)用printCartesian時,就會再轉(zhuǎn)換回笛卡爾坐標(biāo)系的形式。沒錯,我們就這樣得到了正確結(jié)果,很奇妙吧。

以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號