C 賦值運算子過載

2021-10-21 18:13:53 字數 2318 閱讀 7343

int

getmonthday

(int year,

int month)

;int day = days[month];if

(month ==2&&

((year %4==

0)&&(year %

100!=0)

|| year %

400==0)

)return day;

}

date

(int year =

1900

,int month =1,

int day =1)

else

}

date

(const date& d)

~

date()

// d2 = d3 -> d2.operator=(&d2, d3)

date&

operator=(

const date& d)

return

*this

;}

date&

operator+=

(int day)

_day +

= day;

while

(_day >

getmonthday

(_year, _month))}

return

*this

;}

date operator+(

int day)

date operator-(

int day)

date&

operator-=

(int day)

_day -

= day;

while

(_day <=0)

_day +

=getmonthday

(_year, _month);}

return

*this

;}

date&

operator++(

)

date operator++(

int)

date operator--(

int)

前置–

date&

operator--(

)

// >運算子過載

bool

operator

>

(const date& d)

}return

false;}

// ==運算子過載

bool

operator==(

const date& d)

// >=運算子過載

inline

bool

operator

>=

(const date& d)

// 《運算子過載

bool

operator

<

(const date& d)

// <=運算子過載

bool

operator

<=

(const date& d)

// !=運算子過載

bool

operator!=(

const date& d)

// 日期-日期 返回天數

C 運算子過載賦值運算子

自定義類的賦值運算子過載函式的作用與內建賦值運算子的作用類似,但是要要注意的是,它與拷貝建構函式與析構函式一樣,要注意深拷貝淺拷貝的問題,在沒有深拷貝淺拷貝的情況下,如果沒有指定預設的賦值運算子過載函式,那麼系統將會自動提供乙個賦值運算子過載函式。賦值運算子過載函式的定義與其它運算子過載函式的定義是...

C 賦值運算子過載

c 賦值運算子過載,為什麼要返回引用?查了許多資料,基本有兩種說法 一 c c 賦值運算子的本意為 返回左值的引用 左值 賦值號左面的變數而非其值 可用以下程式段測試 int a,b 3,c 2 a b c cout 對於x y x,y均為物件時 若不返回左值的引用,將會生成臨時物件。如果不處理x ...

C 過載賦值運算子

c 類建立時,會產生乙個預設的賦值運算子函式 a operator const a 普通類例項之間賦值可能沒問題,但當類成員變數中有指標引用的動態記憶體時,複製後只是簡單地將指標值複製,而沒有將其指向的動態記憶體也拷貝乙份,這樣即多個類例項內的指標指向同一動態記憶體,當類例項析構時,會導致這塊動態記...