以加法為例:函式名 time time::operator+(const time & time) //乙個類類相加的過載運算子
呼叫時:sum = a+b;如果a、b都是time類,則等價於sum = a.operator+(b)
過載限制:
1.過載後的運算子至少有乙個運算元是使用者定義的型別。
2.不能建立新運算子
3.過載後的運算子和原來的運算子具有相同的優先順序
非靜態成員函式後面加const(加到非成員函式或靜態成員後面會產生編譯錯誤),表示成員函式隱含傳入的this指標為const指標,決定了在該成員函式中,任意修改它所在的類的成員的操作都是不允許的(因為隱含了對this指標的const引用);
任何接受唯一乙個引數的建構函式都可被用作轉換函式,講該型別與引數相同的值轉化為類。
如string物件的初始化: string a = 「a」 等價於 string a(「a」)
operator typename(){}
轉換函式使用注意:轉換函式必須是類方法 轉換函式不能有指定的返回型別 轉換函式不能有引數
顯式轉換: typename(物件名) (typename)物件名
在轉換函式定義時在頭部加入explicit作用是在呼叫轉換函式的時候必須以顯式的方式進行。
c primer 第十一章 使用類
一,操作符過載 1 函式過載 多型 名稱相同,特徵標 引數列表 不同的函式。完成相同的基本操作 2 操作符左側的對像是呼叫物件,操作符右側的作為引數被傳遞的物件 3 過載限制 1 過載後的操作符至少有乙個運算元是使用者定義的型別。防止使用者為標準型別過載操作符 2 使用操作符,不能違反操作符原來的句...
C Primer 答案 第十一章
11.1 map 關聯容器,存放key和value vector 順序容器,只存value 11.2 list 經常在任何位置刪除新增資料 vector 沒別的要求一般就用它 deque 棧 map 字典 set 數學集合 11.3 and 11,4 include include include ...
C Primer 第十一章答案
關聯容器map,set 習題11.1 map是鍵 值對應,其可儲存兩個型別,而vector單單是乙個型別的儲存容器。map通過關鍵字獲得值,而vector 通過迭代器或者下標引索獲得。習題11.2 list 頻繁需要插入 刪除操作 vector 需求更多的隨機訪問操作 deque 在兩端插入刪除 但...