1. 程式人生 > >C++中的前置和後置++

C++中的前置和後置++

增量 後置 內置 因此 效率 要求 來講 註意 對象

在C++中進行操作符重載的時候,前置++返回的是一個引用。

這就設計到了對於基本變量進行前置操作時候的理解了。

例如,對於int類型變量,在進行前置++的時候,是會將i進行加1,然後返回i的引用。而i++是先創建一個i的副本,然後在對i進行加1,最後返回i的副本的值(註意這裏是值而不是引用)。

通常,c++的內置類型都要求前綴式操作符返回被增量或被減量對象的引用;

而要求後綴式操作符返回被增量活被減量對象做增或減操作之前的副本(這裏邊就存在內存拷貝,這就涉及到了效率的因素)

因此,在進行自定類的操作符重載的時候,也是類似的要求,那就是前置++返回的是對應的引用,而後置++返回的操作之前的一個副本值(而不是引用,這個應該是一個臨時的變量,之後就會被析構掉了吧,我覺得!)

其實,在實現後綴式版本時,一般先保存對象做自增/減之前的副本,然後調用自己的前綴版本來實現自增操作,最後將先前年保留的副本

返回。這裏需要註意的是,後綴式版本中,返回值是尚未自增的原值,但對象本身已經做了自增操作了。

總結來講:就是後綴操作符,中間會有一個臨時變量來保存沒有更改之前的值,最後返回的是這個臨時變量(也就是那個副本)

C++中的前置和後置++