14 1 基本概念

2022-10-01 06:54:10 字數 1366 閱讀 1764

目錄過載運算子是特殊名字的函式

名字:operator後面加上需要過載的運算符號

構成:注意點:

不能含有預設實參

第乙個(左側)運算物件繫結到隱式的this,所以顯式的運算物件比實際的運算物件少乙個

至少有乙個類型別物件引數

//錯誤:不能重新定義內建的運算子

通常情況下,我們將運算子作用於型別正確的實參,從而以這種間接方式「呼叫」過載的運算子函式。然而,我們也能像呼叫普通函式一樣直接呼叫運算子函式,先指定函式名字,然後傳入數量正確、型別適當的實參:

//乙個非成員函式的等價呼叫

data1 + data2; //普通的表示式

operator+(data1, data2);//等價的函式呼叫

//乙個成員函式的等價呼叫

data1 += data2; //基於「呼叫」的表示式

data1.operator=(data2); //等價的函式呼叫

通常情況下,不應該過載逗號,取址,邏輯與和邏輯或運算子

詳見c++primer491

當你開始設計乙個類時,首先應該考慮的是這個類將提供哪些操作。在確定類需要哪些操作之後,才能思考到底應該把每個類操作設成普通函式還是過載的運算子。如果某些操作在邏輯上與運算子相關,則它們適合於定義成過載的運算子:

如果具有對稱性的運算子沒有定義成非成員,那麼將不支援型別轉換,左側物件必須是成員函式所在類的型別,失去了對稱性

string s = "world";

string t = s + '!'; //正確:能把char*加到string上

string u = "hi" + s; //如果+是string的成員,會產生錯誤

如果operator+是string的成員,最後一行**等價於

"hi".operator+(s);
顯然是錯誤的。

基本概念 C 基本概念

由於工作中需要用到c 編寫的一些工具,有時候需要根據需求修改或者定製工具,所以現在不得不學習一下c 的基礎語法,此為筆記,不成章法!機器語言 組合語言 高階語言 面向過程的程式設計方法 物件導向的程式設計方法 泛型程式設計方法 1 演算法設計 2 源程式編輯 3 編譯 4 連線 5 執行除錯 輸入裝...

基本概念 數控系統基本概念

第一章 基本概念 數控工具機cnc是一種按事先編制好的加工零件程式進行加工的高效 自動化加工裝置。是 computer numerical control machine tools 的簡稱。數控工具機較好地解決了複雜 精密 小批量 多品種的零件加工問題,是一種柔性的 高效能的自動化工具機。西門子系...

XSLT基本概念

我們首先來澄清乙個概念,大家可能聽說過xsl extensible stylesheet language xsl和我們這裡說的xslt從狹義上理解是一樣的,而按照w3c的標準,xslt的說法更嚴格些,因此我們在文章中統一使用xslt的稱法。它們之間具體的關係我們會在下面講述。1.1 什麼是xslt...