C 中關於臨時量和臨時物件

2021-08-15 16:40:45 字數 861 閱讀 2337

一、臨時量的生成

1、內建型別產生的臨時量:常量 不可更改

2、自定義型別產生的臨時量:變數 可以更改

3、隱式產生的臨時量:常量

二、返回值

1、返回內建型別的時候,產生的都是暫存器的立即數

2、返回自定義型別的時候,也是通過暫存器返回的,但是用指標或者引用來接收返回值時,編譯器會自動產生臨時量

3、返回物件時,一律產生臨時量,並把臨時量的位址作為實參傳遞進去,被呼叫函式通過訪問ebp+8就能夠訪問臨時量的位址

三、返回物件

1、函式返回物件時,直接返回臨時物件

test getobject(test &t)

這樣可以提高效率

2、接收乙個返回物件的返回值時,在定義的時候直接接收返回值,是初始化的過程並非賦值

int main()

四、實參傳遞形參

實參傳遞形參的過程是初始化的過程,呼叫拷貝建構函式

五、函式在呼叫點之前進行宣告的原因

1、看實參和形參的型別、個數是否匹配

2、根據函式呼叫點返回值的型別和宣告或定義時的返回值型別是否匹配

3、根據返回值的型別確定返回方式

六、當前物件的生成步驟

三步1、分配記憶體

2、構造成員物件

3、構造自己

七、引用臨時物件

當引用乙個臨時物件時,臨時物件的生存週期就變得和引用的生存週期一樣,引用會提高臨時物件的生存週期

cgoods &q = cgoods("shangpin1",30,8.5);//呼叫帶三個引數的建構函式  沒有析構函式

關於C 中的臨時物件問題

關於c 中的臨時物件問題 c 中真正的臨時物件是看不見的,它們不出現在你的源 中,臨時物件的產生在如下幾個時刻 1.用建構函式作為隱式型別轉換函式時,會建立臨時物件。例 class integer integer private int m val void calculate integer it...

C 臨時量與臨時物件及程式的相關優化

一 臨時量與臨時物件 臨時量 內建型別生成的臨時量是常量 臨時量,暫存器帶出來 自定義型別生成的臨時量是變數 在記憶體中。隱式生成生成的臨時量是常量 顯式生成生成的臨時量是變數 臨時物件 臨時物件是系統臨時分配的物件,在沒主動宣告所需物件而又使用其功能時產生的 顯示物件 出現型別名 隱式物件 不出現...

C 臨時物件

臨時物件的產生 1.用建構函式作為隱式型別轉換函式時。2.建立乙個沒有名字的物件時。直接寫下 ctempobj 輸出 init obj exit obj 不單調用了建構函式,還呼叫了析構函式.既然是物件也可以這樣使用 ctempobj fun 不過這樣使用可要小心了 new ctempobj fun...