c 簡單幾種運算子過載

2021-07-29 03:41:05 字數 886 閱讀 1213

1. 建構函式:主要實現物件的初始化,如果我們自己不定義建構函式,那麼系統會自動為我們定義乙個建構函式為我們使用,一旦類的物件建立,那麼系統會自動呼叫建構函式來實現物件的初始化,也就是例項化物件;建構函式沒有返回值,且和類名一致;

2. 拷貝建構函式:是建構函式的一種過載,注意其引數一定要用「引用」,否則呼叫拷貝建構函式時會陷入一種自身遞迴的狀態;

拷貝構造函式呼叫的三種情況:

乙個物件初始化另乙個物件;

函式的引數是乙個類的物件時,進行實參對形參進行資訊傳遞時,也會呼叫拷貝建構函式;

當乙個函式的返回值是類的物件時,函式執行完畢返回結果時也會呼叫拷貝建構函式;(函式結束以後會將返回值拷貝到乙個臨時無名物件中,此時呼叫拷貝建構函式)

3. 賦值語句(賦值運算子過載):

test& operator=(const test& t)

return *this;

}解析:函式返回值使用「引用」是為了達到連等的效果;引數加const是為了防止修改t的值;引數使用「引用」是為了方便高效,少呼叫一次拷貝建構函式,提高**執行效率;**塊中要考慮是否出現自己給自己賦值的情況;this是當前物件的位址,*this是指當前物件,這需要讀者分清楚this的含義;

4.析構函式:析構函式是用來釋放空間的,如果用new或者其他函式開闢了空間不用析構函式去釋放就會出現記憶體洩露的問題;析構函式沒有返回值和引數,且和類名一致,在類名前加上「~」;

eg:~test(){}

eg:test* operator&()

6.const修飾的運算子過載:

eg:const test* operator&() const

注:前乙個const是用來修飾函式返回值的,後乙個const是用來修飾當前物件this指標的;

簡單運算子過載

運算子過載的規則 過載為類成員的運算子函式定義形式 返回型別 operator 運算子 形參 引數個數 原運算元個數 1 後置 除外 例如如果你想實現兩個字串拼接直接用 str1 str2 那麼形參應該只有乙個,並且在呼叫過載函式時傳入的實參應該是str2 經過過載後,temp str1 str2 ...

c 簡單的運算子過載

運算子的過載 賦予運算子新的操作功能,主要用於類物件的操作 其定義形式為 函式返回型別 類名 operator 想要過載的操作符 參數列 可以把 operator 想要過載的操作符 看成乙個函式名,更好理解 includeusing namespace std class majinnbuu 建構函...

C 運算子過載 簡單易懂

運算子過載,就是對已有的運算子重新進行定義,賦予其另一種功能,以適應不同的資料型別。你可以重定義或過載大部分 c 內建的運算子。例如 等,這樣,你就能使用自定義型別的運算子。過載的運算子是帶有特殊名稱的函式,函式名是由關鍵字 operator 和 其後要過載的運算子符號構成的。與其他函式一樣,過載運...