前字尾運算子(如過載時,系統如何區分 在前還是在後

時間 2022-04-03 15:25:18

1樓:匿名使用者

int i=10;

cout<

using namespace std;

class fraction //數類;

fraction& operator++() //字首自加重載;(前置版本prefix)

const fraction operator ++(int) //字尾自加重載;(後置版本postfix)

};ostream& operator<<(ostream& out, const fraction& x)

int main()

前置版本返回乙個引用【fraction& operator++()】,後置版本返回乙個const值【const fraction operator ++(int)】。

後置版本是利用前置版本來實現的。節約**,控制**有餘。

前置版本的效率高,因為後置版本需要呼叫前置版本,所有後置版本效率比前置要低。(++i比i++效率高。)

在後置版本裡,人為新增乙個引數(int),主要是為了區別前置版本,這個引數不會被使用。

2樓:匿名使用者

舉個簡單的例子:

i=2;

m1=i++;(這裡是先把i的值2賦給m1;然後i+1。答案就是m1=2,i=3)

若是m1=++i;(先i+1,然後把加一後的值賦值給m1。答案就是m1=3,i=3)

字首運算子和字尾運算子的區別

3樓:匿名使用者

你好,每一步每一步的解釋,其實沒必要,我主要跟你說說 --inum 和 inum-- 的區別吧。

首先,我們說將二者獨立為乙個語句來執行的時候,其實從結果看沒有任何區別,都是變數自身加一:

--inum;

inum--;

// 從結果看,以上兩句等價於

inum -= 1;

// 也等價於

inum = inum - 1;

但是,當兩者與其他語句同時使用時,區別就明顯了。簡單的說就是:

--inum:是先自身減一,再把結果拿去用inum--:是先拿自身去用,再自身減一

var inum = 10;

alert(--inum); // 9,先減了1,再使用結果9alert(inum--); // 9,先使用inum:9,然後再自減1,得到下一行alert出的8

alert(inum); // 8

到這裡,基本就可以說清楚二者的區別了。

希望能幫你解決疑惑,望採納~

4樓:左岸流霜

字首運算子是在使用變數前先進行運算,字尾是使用後再進行運算。

比如:var a=10;

alert(a++);//輸出10,然後a=a+1alert(++a);//a=a+1,然後輸出a

「字首運算子」和「字尾運算子」的區別是什麼?

5樓:秀黯然

1.字首bai運算子是在使用變數前先進行運算du,後zhi綴是使用後再進行運算。

dao比如:var a=10;

alert(a++);//輸出專10,然屬後a=a+1

alert(++a);//a=a+1,然後輸出a

先把i的初值賦給表示式(i++),作為表示式(i++)的值,然後i自增1作為i的值。

2.因為你的後置++返回的並不是最初被自增的物件本身。所以(n++)++這個表示式的第二個++實際上自增的是乙個臨時物件,而原本的n自然沒有再次發生變化。

所以為了防止這種困惑必須安利c++11:

sometype sometype::operator ++(int) &。

c++,字首遞增,和字尾遞增運算子都怎麼過載?

6樓:捐你妹

#include <iostream.h>class counter

counter operator ++();

counter operator ++(int );

void print()

private:

unsigned v;

};counter counter::operator ++()counter counter::operator ++(int)void main()

C 過載 運算子的問題,c 運算子過載問題

只拿了你有疑問的兩個函式出來討論,看是否明白 time time operator 這是字首 return this time time operator int 這是字尾 return temp time operator 這表示前 即 time1 呼叫該函式 time operator int ...

C 運算子過載

問題出在 void operator string ob1 這一句,可以改成 void operator string ob1 原因在於 引數 string ob1 相當於是個臨時變數,他的值是,ob2的拷貝,但是它的生命週期在 以後就到頭了,也就是說就析構了。看你的string類裡有個 char ...

c 過載運算子的作用是什麼,C 中 運算子過載 到底有什麼何意義?

就是可以定義新的運算方法,比如虛數的 法,你定義2個虛數,直接用 是不行的,系統不認,你必須自己寫個過載,讓實部和實部相加,虛部和虛部相加,你先了解下什麼叫函式過載就能更好理解了。過載就是說你對系統給的不滿意,無法滿足你自己的需求,然後你寫個能滿足自己的需求代替系統的,當然只在這個類裡有效。就是用函...