1樓:匿名使用者
c++編輯器可以通過在運算子函式參數列中是否插入關鍵字int來區分這兩種方式
宣告:x operator++();//字首方式x operator++(int);//字尾方式呼叫時,引數int一般傳遞給值0
x ob;
++ob;
ob++;//隱式呼叫ob.operator++(int)ob.operator++();
ob.operator++(0);//顯式呼叫ob.operator++(int),意為ob++
2樓:匿名使用者
後置++有個型別為int的引數,一般不得在實現中使用該引數
3樓:匿名使用者
前++,變數先自加1在使用
後++,變數先使用後自加1
例如int a = 3,b=2;
a = (++a)+b;//a先自加1,a=4,後然a+b 最後結果給a,a = 6
a = a + (b++); //a=a+2 = 8,b自加1等於3,b =3
4樓:匿名使用者
字首式 operator++(),++後返回加之後的值
字尾式 operator++(int),++後返回加之前的值
5樓:志野唐津
舉個例子
1. int a = 1;
cout << ++a ;
先將a加1,然後輸出2
2. int a = 1;
cout << a++ ;
先輸出1,然後a加1變為2
6樓:瀟湘海英
前++先加1在計算,後加1先計算再加1
c++中為什麼過載前置++運算子要加個&?
7樓:
complex& complex::operator++() // 返回一
copy
個引用即bai代表當前du物件本身zhi
complex complex::operator++(int)
8樓:匿名使用者
1、因為過載bai自加運算子後可以du返回物件zhi的引用,dao以方便在表示式中連續使版用。
舉個例:權
cout《是經常用的,其實是過載了《這個操作符。如果不返回引用,cout<
就是這個意思吧。好多過載操作符,作用其實都是這樣的。 2、引用是c++引入的新語言特性,是c++常用的一個重要內容之一,正確、靈活地使用引用,可以使程式簡潔、高效。引用就是某一變數(目標)的一個別名,對引用的操作與對變數直接操作完全一樣。 引用的宣告方法: 型別識別符號 &引用名=目標變數名。 9樓:匿名使用者 這裡返回bai物件的引用du, 可以連續使用。 舉個zhi例子 cout《是我們經常dao用的吧其實是過載了 《這個專操作符。 如果不返屬回引用 cout<
如果返回自身的引用 cout<
就是這個意思吧。好多過載操作符,作用其實都是這樣的。 還有 "="的過載 返回引用的目的 顯然就是 方便寫成 a = b = c; 為什麼可以這樣 其實是a = (b = c); b=c返回的是b的引用,然後再繼續 a = b ;如果不反回自身的引用,顯然就不行了! 10樓:匿名使用者 & 代表引用,形參是引用(非const型)時,就是將該物件自己傳遞進函式了返回值是&時用在運算子的返回值是左值時,常用有這幾個:所有的賦值(包括複合賦值),字首自加自減,下標運算子 c++中運算子過載++前置和後置,實現中有什麼不同啊,它們各有什麼內函? 11樓:匿名使用者 單目操作符++過載確實存在前置和後置的差別。這個原理與普通型別的運算元基本相同。如果執行操作符前置的運算,那麼呼叫該操作符的物件將返回自增操作的結果;如果執行操作符後置的運算,那麼呼叫該操作符的物件將返回操作前的狀態,並執行了自增操作。 下面舉類物件的例子說明一下。 class objtype; // ++前置 objtype objtype::operator++()// ++後置 objtype objtype::operator++(int noused) 12樓:夏致萱查琦 ++後置表示先運算表示式再自加,例如:a=5,b=a++;運算之後,a=6,b=5 ++前置表示先自加表示式再運算,例如:a=5,b=a++;運算之後,a=6,b=6 c++運算子過載是什麼意思 13樓:北大青鳥 所謂過載,就是重新賦予新的含義。函式過載就是對一個已有的函式賦予新的含義,使之實現新功能,因此,一個函式名就可以用來代表不同功能的函式,也就是”一名多用”。 運算子也可以過載。實際上,我們已經在不知不覺之中使用了運算子過載。例如,大 家都 已習慣於用加法運算子”+”對整數、單精度數和雙精度數進行加法運算,如5+8, 5. 8 +3.67等,其實計算機對整數、單精度數和雙精度數的加法操作過程是很不相同的, 但由於c++已經對運算子”+”進行了過載,所以就能適用於int, float, double型別的運算。 又如”<<“是c++的位運算中的位移運算子(左移),但在輸出操作中又是與流對 象cout 配合使用的流插入運算子,”>>“也是位移運算子(右移),但在輸入操作中又是與流物件 cin 配合使用的流提取運算子。這就是運算子過載(operator overloading)。c++系統對”<<“和”>>“進行了過載,使用者在不同的場合下使用它們時,作用是不同 的。 對”<<“和”>>“的過載處理是放在標頭檔案stream中的。因此,如果要在程式中用”<<“和”>>”作流插入運算子和流提取運算子,必須在本檔案模組中包含標頭檔案stream(當然還應當包括”using namespace std“)。 在c++中不能在程式中直接用運算子”+”對複數進行相加運算。使用者必須自己設法實現複數相加。例如使用者可以通過定義一個專門的函式來實現複數相加。 14樓:匿名使用者 比如+運算在正常情況下只能對基本型別(int 、float等)進行加法 過載之後就可以對複數a+bi進行加法(過載函式要針對複數去寫) 如:(a+bi)+(c+di)=(a+b)+(c+d)i 過載完之後+就可以完成上面功能 15樓:匿名使用者 先去了解什麼是函式過載吧。大概意思就是兩個同名的函式,利用形參的不同來作區分。 c++,前置++和後置++操作符過載時,為啥通過啞元就能進行區分呢? 16樓:留下痕跡的人生 比如:問題1: /* 兩個函式重定義 不能通過編譯 */ complex& operator++(void) complex const operator++() /* 兩個函式形成過載關係,能通過 編譯 */ complex& operator++(void) complex const operator++(int) 問題內2: 前++和後++ 最根本容的區別: 前++是先運算,後賦值 後++是先賦值,後運算 問題3: /* 這三條語句是把運算後的值返回了,所以說前++的過載函式的實現 */ ++m_r; ++m_i; return *this; /* 這三條語句,把運算之前的值old返回了,所有說是後++過載函式的實現 */ complex old = *this; ++m_r; ++m_i; return old; 問題4: 為什麼前++返回的可以是物件引用值 ,後++返回的只能是物件? 因為前++,返回值是*this,表示該變數不是過載函式的區域性變數,所以可以放回其引用 後++,的返回值是old,old過載函式的的區域性變數,所以不能返回old引用。 17樓:匿名使用者 int main (void) 根據bai 入參不du一樣zhi,dao判斷的回。答 過載運算 在需要過載的類中宣告 classname operator int i 就可以了。引數i是代表傳入的 括號中的值 索引 因為我們使用 的使用會用到類似 a i value的表示式去賦值,所以返回類的引用可以支援賦值操作。這裡有我修改的一段示例 上上西 給個示例,以樓上 為基礎,再包含標頭檔... 呵呵,ostream os就是cout 所以cout node endl 就是先 cout node 根據friend ostream operator ostream os node temp 知輸出node,然後生成新的流物件cout,就變成了cout endl,又是cout 和endl的過載,... 阿君 宣告為友元類,friend ostream operator 實現部分 ostream operator 書道聖儒 過載輸出運算子 include class ccomplex ccomplex double rv ccomplex double rv,double iv friend cco...C 怎樣過載下標運算子,C 運算子過載時過載賦值運算子和下標運算子時型別中的 是什麼意思?為什麼要加?
c 輸出運算子過載問題,C 運算子過載 為什麼流運算子不能過載為成員函式?
c 過載運算子用於輸出複數