這兩種運算子 過載有什麼區別還有為什麼引數是int不是物件

2021-04-21 09:42:24 字數 1742 閱讀 2027

1樓:匿名使用者

前++運算子組成抄的表示式是左值,襲後++運算子組成的表示式為右值,所以它們的過載函式是有所區別的:

1. 原型不同:

前++運算子過載函式原型為:

pixel& operator++(); //返回型別為引用,沒有int型形參

後++運算子過載函式原型為:

pixel operator++(int); //返回型別為物件,有int型形參(該形參並不使用,只是為了區別於前++)

2. 函式體中處理方式不同:

前++:直接對*this物件進行「+1」操作,返回*this物件。

後++:先建立*this物件的副本(比如t),對*this物件進行「+1」操作,返回副本t。

c++中 運算子過載 到底有什麼何意義?

2樓:匿名使用者

運算子過載是一種特殊的函式過載。例如int a,b;則求a+b值時,在編譯過程中使用的是函式呼叫:opertor+(a,b).主要作用就是使程式更加簡潔,減少程式設計時間。

3樓:匿名使用者

運算子過載是一種特殊的函式過載。

c++的一大特性就是過載(overload),通過過載可以把功能相似的幾個函式合為一個,使得程式更加簡潔、高效。在c++中不止函式可以過載,運算子也可以過載。

由於一般資料型別間的運算子沒有過載的必要,所以運算子過載主要是物件導向之間的。

在進行物件之間的運算時,程式會呼叫與運算子相對應的函式進行處理,所以運算子過載有兩種方式:成員函式和友元函式。

成員函式的形式比較簡單,就是在類裡面定義了一個與操作符相關的函式。友元函式因為沒有this指標,所以形參會多一個。

4樓:湛藍水晶

的確是一樣的,比如你過載了加號,其實是同樣可以定義add()函式來完成相同的操作。

過載是為了讓運算比較符合人的思維,比如定義一個矩陣類matrixmatrix a, b ,c;

//...

//初始化a、b的語句

c = a+b; //如果沒有過載加號的話,這條就通不過編譯了只是這個+號你同樣可以定義一個add函式來操作,如:

c = a.add(b);

你覺得哪種方法比較直觀?

5樓:匿名使用者

你想想如果兩個時間相加,你用+號行嗎?

你要是把+號過載一下,寫一個你自己的+號運算方法不就可以了。

運算子過載就是自己定義符號

c++中運算子過載++前置和後置,實現中有什麼不同啊,它們各有什麼內函?

6樓:匿名使用者

單目操作符++過載確實存在前置和後置的差別。這個原理與普通型別的運算元基本相同。如果執行操作符前置的運算,那麼呼叫該操作符的物件將返回自增操作的結果;如果執行操作符後置的運算,那麼呼叫該操作符的物件將返回操作前的狀態,並執行了自增操作。

下面舉類物件的例子說明一下。

class objtype;

// ++前置

objtype objtype::operator++()// ++後置

objtype objtype::operator++(int noused)

7樓:夏致萱查琦

++後置表示先運算表示式再自加,例如:a=5,b=a++;運算之後,a=6,b=5

++前置表示先自加表示式再運算,例如:a=5,b=a++;運算之後,a=6,b=6

借代象徵這兩種東東有什麼區別啊

象徵是通過一些具體形象,使人產生聯想,從而表現與之相聯絡的某種抽象的概念 思想 感情,表現作品主題的藝術創作手法,屬於文藝學範疇。它是一種寫作手法。而借代是一種修辭手法,是指用相關的事物來替代所要表達的事物,本體與借體之間沒有相似點,只有相關性,因而不能加 像 字換成明喻。舉例來說吧,比如巴金的 燈...

這兩種定義函式的方法有什麼區別,js匿名函式與普通定義的函式有什麼區別

在呼叫bai上,這兩種方式du定義的函式完全沒有zhi區別dao。如果要說區別,在定義時的相互版覆蓋權上,會有一定的差異。例如同時使用下面幾種方式同時定義同名的函式及變數 1 function test var test function 2 var test function function t...

酒店管理和旅遊管理實質上有什麼區別?這兩種專業的就業方面是如何的

簡要回答您,供您參考 1 酒店管理與旅遊管理都是目前比較熱門的專業,就業範圍寬泛,兩者也有著一定的交叉業務關聯以及共同點,諸如 供需關係中的食宿安排 景點旅遊路線等 2 根據本人既往的工作經驗來講,酒店管理與旅遊管理在一些實務管理方面可以互通或者互換,而兩者也都屬於服務行業裡面的兩個細分的體系 3 ...