對(duì)于將 test3 改為 test3(Data data) 問(wèn)題的描述,似乎不妥。
對(duì)于將 test3 改為 test3(Data data) 問(wèn)題的描述,似乎不妥。
/*
編譯錯(cuò)誤:Copy constructor must pass its first argument by reference
參數(shù)列表中,若寫(xiě)的是一個(gè)對(duì)象,則在傳參時(shí),將調(diào)用其拷貝構(gòu)造函數(shù),那么問(wèn)題就會(huì)出現(xiàn):
我們將要調(diào)用的這個(gè)函數(shù),就是拷貝構(gòu)造函數(shù),
所以,若在參數(shù)列表中,寫(xiě)一個(gè)對(duì)象的話,則在傳參時(shí),就會(huì)又調(diào)用一次拷貝構(gòu)造函數(shù),
然后在調(diào)用,從而陷入無(wú)限循環(huán)中去。
*/
Data(Data data);
上述「我們將要調(diào)用的這個(gè)函數(shù),就是拷貝構(gòu)造函數(shù)」是什么鬼?
說(shuō)的是 test3(const Data& data) 嗎?
先不說(shuō)它根本就不是一個(gè)拷貝構(gòu)造函數(shù),僅僅是長(zhǎng)得像而已。
這里你已經(jīng)假設(shè)把 test3 改為了 test3(Data data) ,哪來(lái)的拷貝構(gòu)造函數(shù)?
如果不是的話,那么「我們將要調(diào)用的這個(gè)函數(shù),就是拷貝構(gòu)造函數(shù)」,
是意思是在 test3(Data data) 函數(shù)體中調(diào)用 Data 的「拷貝構(gòu)造函數(shù)」嗎?