java對象是什么 為什么復制構(gòu)造函數(shù)的形參必須是一個引用?
為什么復制構(gòu)造函數(shù)的形參必須是一個引用?復制構(gòu)造函數(shù)實際上是一個函數(shù)。如果將參數(shù)定義為類型而不是類型引用,它將首先調(diào)用該類型的復制構(gòu)造函數(shù)并重構(gòu)一個新實例,就像下面的示例類MyClass一樣。這是一個
為什么復制構(gòu)造函數(shù)的形參必須是一個引用?
復制構(gòu)造函數(shù)實際上是一個函數(shù)。如果將參數(shù)定義為類型而不是類型引用,它將首先調(diào)用該類型的復制構(gòu)造函數(shù)并重構(gòu)一個新實例,就像下面的示例類MyClass一樣。這是一個簡單的類{}int fun(MyClass a)//這是一個函數(shù)。調(diào)用時,編譯器會自動調(diào)用MyClass類型的構(gòu)造函數(shù),并重新實例化MyClass int fun(MyClass&;AMPA)//此函數(shù)不會調(diào)用MyClass類型的構(gòu)造函數(shù),只需傳遞一個指針~現(xiàn)在回到您的問題,賦值構(gòu)造函數(shù)也是一種構(gòu)造函數(shù),你給它一個非引用、非指針的參數(shù),它會調(diào)用這種類型的構(gòu)造函數(shù),這很好~一個函數(shù)不斷地調(diào)用自己,這樣它就不會出錯,就不會堆棧溢出了,是嗎?簡單來說,事情是這樣的:intfun(MyClass a){fun(a)}//你認為這個函數(shù)有一天會結(jié)束嗎?