一、運算子的過載
運算子過載,就是對已有的運算子重新進行定義,賦予其另一種功能,以適應不同的資料型別
在複雜資料型別中,編譯器不能識別運算子,如c++中,物件+物件,編譯器無法知道怎麼運算,所以就需要編寫函式,實現相應功能。
不能過載的 運算子五個:?: . .* :: szieof
二 自增運算子過載的實現 a++ ++a;
1. 類中的++操作符號過載之後必須保證其語意與全域性++相同。
2.為了區分前後,用++()表示前自增,用++(int)後自增。(規定)
3.因為按照前自增的標準定義,應該支援"++++a"的語法,而且兩次前自增都應該是對a物件的自身操作,如果返回a型別,那第二次前自增調用的是臨時物件的前自增操作。
4.後自增應該返回"const complex".這可以防止形如"a++++"的用法。
5.一般通過前自增操作來實現後自增操作符函式
三、this指標
this 這是指代本物件
this本來是個指標,*this的星號是取指標指向的內容,
所以,*this是整個物件,而this是指向本物件的指標
四、運算子的過載函式
異或、與等 操作符的過載
五、一般像類中的資料成員含有指標,就需要寫拷貝建構函式,和賦值語句(杜絕淺拷貝、淺賦值)
operator運算子過載
運算子過載 一 作為類成員函式的過載 為了能進行類物件和乙個整型值的加法運算,需要寫乙個類的成員函式來過載雙目加法 運算子。該函式在類中的宣告如下 date operator int const 函式的宣告指出,返回值是乙個date類物件,函式名是運算子 只有乙個整型引數,而且函式是常量型的。當編譯...
C 運算子過載 operator
您可以重定義或過載大部分 c 內建的運算子。這樣,您就能使用自定義型別的運算子。過載的運算子是帶有特殊名稱的函式,函式名是由關鍵字 operator 和其後要過載的運算子符號構成的。與其他函式一樣,過載運算子有乙個返回型別和乙個引數列表。box operator const box 宣告加法運算子用...
operator過載運算子
c 已經為基本型別和標註庫中的資料型別提供了運算子操作,我們自定義資料型別的話有時就需要過載運算子實現自定義函式來實現類似功能了,此時可以把operator operator operator 等操作符整體看作乙個函式名。一 單目運算子 以 為例 1 過載為類的成員函式 假設obj表示物件,func...