乙個類,包含極座標和直角座標。
兩個這樣的類物件,通過運算子過載,可以直接相加/
相減,並得出乙個新的座標,而這個新座標,是原來兩個物件的向量相加的結果。
**如下:
包含類定義
#pragma once
class point
; //常量
private:
double x; //x,y座標
double y;
double jiaodu; //極座標:角度和長度
double changdu;
int mode; //模式,根據模式來決定座標輸出時的形式
void setxy(); //設定x、y座標(根據極座標)
void setji(); //設定極座標(根據x,y座標)
public:
void cm(int b = 2); //模式轉換,預設引數為2(切模式),也可以給引數,改變轉換情況
point(double a = 0, double b = 0, int c = xy); //預設建構函式。預設為x,y座標賦值
void reset(double a = 0, double b = 0, int c = xy); //重置座標
void show()const; //輸出座標
point operator+(const point& m)const; //運算子+過載,不用引用是因為要建立乙個新物件,然後返回這個物件
point operator+(double m)const; //再次過載,面對物件是乙個double值,直接加在x和y座標上
point operator-(const point& m)const; //運算子-過載,
point operator*(const double m)const; //運算子*過載,
point operator/(const double m)const; //運算子/過載,
friend std::ostream& operator<<(std::ostream &os, const point&m); //用於cout或其他輸出
}; 包含了point類的成員函式以及友元函式定義
#include#include#include"point.h"
void point::setxy() //設定x、y座標(根據極座標),函式內容是拿以前的改改
void point::setji() //設定極座標(根據x,y座標)
void point::cm(int b)
else if (b == ji)mode = ji;
else if (b == xy)mode = xy;
else std::cout << "引數輸出錯誤,輸出模式轉換失敗。" << std::endl;
}point::point(double a, double b, int c)
else if (c == ji)
else std::cout << "引數輸入錯誤。如果你需要輸入x、y座標,請第三個引數輸出0或者不輸入第三個引數;如果你需要輸入極座標,請第三個引數輸入1。" << std::endl;
}void point::reset(double a, double b, int c)
else if (c == ji)
else std::cout << "引數輸入錯誤。如果你需要輸入x、y座標,請第三個引數輸出0或者不輸入第三個引數;如果你需要輸入極座標,請第三個引數輸入1。" << std::endl;
}void point::show()const //輸出座標
else if (mode == ji) }
point point::operator+(const point& m)const //運算子+過載,不用引用是因為要建立乙個新物件,然後返回這個物件
point point::operator+(double m)const
point point::operator-(const point& m)const //運算子-過載,
point point::operator*(const double m)const //運算子*過載,
point point::operator/(const double m)const //運算子/過載,
std::ostream& operator<<(std::ostream &os, const point&m)
main()函式所在,用於使用和驗證類
#include#include"point.h"
int main()
顯示:
現在報告x,y座標:
x:0,y:0
現在報告x,y座標:
x:3,y:4
現在報告極座標:
長度為:5,角度為:4度
將c以x,y座標顯示:
現在報告x,y座標:
x:4.98782,y:0.348782
將b以極座標顯示:
現在報告極座標:
長度為:5,角度為:53.1301度
a+3=現在報告x,y座標:
x:3,y:3
a-2=現在報告x,y座標:
x:-2,y:0
b+c=現在報告極座標:
長度為:9.0949,角度為:28.5651度
b-c=現在報告極座標:
長度為:4.15726,角度為:118.565度
b*2=現在報告極座標:
長度為:10,角度為:53.1301度
b/2=現在報告極座標:
長度為:2.5,角度為:53.1301度
請按任意鍵繼續. . .
總結:① -
運算子除了表示減法(例如
a-b),也可以表示負號(例如
-a)。因此,過載負號運算子時,可以作為成員函式,且無需使用引數(隱式的呼叫類物件自己)。
② 關於更多應用——隨機漫步問題,可以看書,或者後面的複習題也有。
(一二三)向量座標計算
乙個類,包含極座標和直角座標。兩個這樣的類物件,通過運算子過載,可以直接相加 相減,並得出乙個新的座標,而這個新座標,是原來兩個物件的向量相加的結果。如下 包含類定義 pragma once class point 常量 private double x x,y座標 double y double ...
python計算一 二 三階顏色矩
path為需要讀取的路徑 img image.open path m,n img.size r,g,b img.split rd np.asarray r gd np.asarray g bd np.asarray b return rd,gd,bd 分別計算一二三階顏色矩 r通道的一階顏色矩 rd...
實驗一二三命令
實驗1 linux操作基礎和文字編輯 useradd 使用者名稱 passwd 使用者名稱 groupadd 使用者組名 man 命令 help命令 vi 檔名 i命令插入文字 刪除乙個字元,用x命令 刪除一行,用dd命令 刪除剩下的行,用d命令 復原文字命令用u 命令ndd 能夠剪下從當前行開始的...