拷貝建構函式的引數為什麼必須是引用?

2022-09-12 11:27:17 字數 548 閱讀 7014

1 #include2 #include

3using

namespace

std;

4class

foo5

13 foo(foo&f):ss(f.ss)

1417 foo& operator =(const foo&f1)

1822

void

test(foo f2)

2326

};27

28int

main()

29

//如果不是引用型別,將會進行一次拷貝,即建立乙個foo f=ff1,而建立時就會發生如第34行一樣的問題,呼叫拷貝建構函式,然後就是迴圈

為什麼拷貝建構函式自己的引數必須是「引用型別」

書上解釋說 如果其引數不是引用型別,則呼叫永遠也不會成功 為了呼叫拷貝建構函式,我們必須拷貝它的實參,但為了拷貝實參,我們又需要呼叫拷貝建構函式,如此無限迴圈。我就乙個狀態 這是在說啥?把我自己搞糊塗了,這到底是什麼意思?分句來理解。第一句 為了呼叫拷貝建構函式,我們必須拷貝它的實參。這句話還是很容...

拷貝建構函式的引數為什麼是引用

在c 中,建構函式,拷貝建構函式,析構函式和賦值函式 賦值運算子過載 是最基本不過的需要掌握的知識。但是如果我問你 拷貝建構函式的引數為什麼必須使用引用型別?這個問題,你會怎麼回答?或許你會回答為了減少一次記憶體拷貝?很慚愧的是,我的第一感覺也是這麼回答。不好還好,我有理性這個好品質。思索一下以後,...

拷貝建構函式的引數為什麼必須使用引用型別

在c 中,建構函式,拷貝建構函式,析構函式和賦值函式 賦值運算子過載 是最基本不過的需要掌握的知識。但是如果我問你 拷貝建構函式的引數為什麼必須使用引用型別?這個問題,你會怎麼回答?或許你會回答為了減少一次記憶體拷貝?很慚愧的是,我的第一感覺也是這麼回答。不好還好,我有理性這個好品質。思索一下以後,...