基於目前的知識而言,c++中乙個函式的形式引數傳遞主要分為兩種型別:值傳遞和指標傳遞。
那麼物件作為形參時是哪種傳遞呢?
可想而知,物件是引用資料型別,指向了其類下的資料成員和方法成員。
我們又知道,值傳遞相當與將變數的等值複製作為引數傳入函式,函式內對其修改並不會影響傳入值。
相反地,當傳入引數為指標時,改變其指向的資料,往往會使得傳入指標的指向資料成員發生變化。(如陣列等)
但是當物件作為形式引數時,其雖然是指標傳遞,卻不會儲存其改變的值。
(c++14下):
class
fun;
void
test0
(fun f)
intmain()
輸出:0
class
fun;
void
test0
(fun* f)
intmain()
輸出:1
就可以儲存對物件中資料成員的更改了。
tips:
類名作為形式引數
形式引數 基本型別 太簡單,不是我今天要講解的 引用型別 類名 匿名物件的時候其實我們已經講過了 需要的是該類的物件 抽象類 介面 class student class studentdemo class studenttest public static void main string arg...
微控制器指標作為函式形式引數
微控制器指標作為函式形式引數 1 微控制器指標作為函式形式引數的作用 在微控制器c語言中,實際引數和形式引數之間的資料傳輸是單向的 值傳遞 方式,也就是實際引數可以影響形式引數,而形式引數不能影響實際引數。而微控制器指標作為函式形式引數,可以改變實際引數的變數值,可以解決不能用乙個形式引數表示陣列或...
物件導向 Java形式引數傳遞問題
形式引數的問題 基本型別 形式引數的改變不影響實際引數 int.引用型別 形式引數的改變直接影響實際引數 基本型別作為引數傳遞的時候是在乙個方法棧中開闢了一塊新記憶體,拷貝了原來的資料值,所以無論我們如何修改,原來的資料值不會受到任何影響。public class practice2 public ...