c 學習 oop 過載算數運算子

2021-10-21 19:59:12 字數 1654 閱讀 1085

/*

date: 11/03/21 19:36

description:過載算數運算子

算術運算子

+ +=

- -=

* *=

/ /=

% %/

為了與內建操作符保持一致,算術操作符通常產生乙個新值

一般應使用復合賦值實現算術操作符

例如:用+=來實現+

*/#include

using

namespace std;

class

sales_item

sales_item

(const string& book,

const

unsigned units,

const

double price)

:isbn

(book)

,units_sold

(units)

,revenue

(units*price)

friend ostream&

operator

<<

(ostream& out,

const sales_item& s)

;//友元函式

friend istream&

operator

>>

(istream& in,sales_item& s);

sales_item&

operator+=

(const sales_item&);

sales_item&

operator-=

(const sales_item&);

private

: string isbn;

unsigned units_sold;

double revenue;};

sales_item operator+(

const sales_item&

,const sales_item&);

sales_item operator-(

const sales_item&

,const sales_item&);

sales_item& sales_item::

operator+=

(const sales_item& rhs)

sales_item& sales_item::

operator-=

(const sales_item& rhs)

sales_item operator+(

const sales_item& lhs,

const sales_item& rhs)

sales_item operator-(

const sales_item& lhs,

const sales_item& rhs)

ostream&

operator

<<

(ostream& out,

const sales_item& s)

istream&

operator

>>

(istream& in,sales_item& s)

intmain()

OOP 運算子過載

運算子過載 即寫函式去改變運算子的功能 以下的運算子都可以被過載 雙目算術運算子 關係運算子 邏輯運算子 單目運算子 自增自減運算子 位運算子 賦值運算子 空間申請與釋放 其他運算子 以下不能過載 成員訪問運算子 成員指標訪問運算子 域運算子 sizeof 長度運算子 條件運算子 預處理符號 如下 ...

OOP 運算子過載原型

include using namespace std 沒有temp變數的都可以加引用,有temp的,如果加引用必須加static 如果是可以連用 如 不改變其意思必須加引用 istream過載時,不能加const 型別轉換過載時,不能加返回值 輸入輸出過載必須為友元 class a a opera...

C 算數運算子

注意 在賦值運算或算術運算過程中,參與運算的運算元型別必須相同,其運算結果也與運算元型別相同 比如 num 10 3 num結果為3 因為參與運算的操作符為int所以num也是int 3.333333變成了3 如果想求出真實結果則 num 10.0 3 此時3自動裝換成3.0 num 3.33333...