復(fù)制構(gòu)造函數(shù) 什么是拷貝構(gòu)造函數(shù)?拷貝構(gòu)造函數(shù)何時(shí)被調(diào)用?
什么是拷貝構(gòu)造函數(shù)?拷貝構(gòu)造函數(shù)何時(shí)被調(diào)用?在C中,以下三種對(duì)象需要調(diào)用復(fù)制構(gòu)造函數(shù)(有時(shí)也稱為“復(fù)制構(gòu)造函數(shù)”):1)作為函數(shù)參數(shù)的對(duì)象通過(guò)傳遞值傳遞到函數(shù)體中;2)作為函數(shù)返回值的對(duì)象通過(guò)傳遞值從
什么是拷貝構(gòu)造函數(shù)?拷貝構(gòu)造函數(shù)何時(shí)被調(diào)用?
在C中,以下三種對(duì)象需要調(diào)用復(fù)制構(gòu)造函數(shù)(有時(shí)也稱為“復(fù)制構(gòu)造函數(shù)”):
1)作為函數(shù)參數(shù)的對(duì)象通過(guò)傳遞值傳遞到函數(shù)體中;
2)作為函數(shù)返回值的對(duì)象通過(guò)傳遞值從函數(shù)返回;
3)對(duì)象用于初始化另一個(gè)對(duì)象(通常稱為賦值初始化);直接調(diào)用函數(shù)和在定義時(shí)定義后續(xù)調(diào)用有什么區(qū)別?這不是區(qū)別。困難的方法是在編譯器復(fù)制S1時(shí)調(diào)用S2復(fù)制方法。
拷貝構(gòu)造函數(shù)、構(gòu)造函數(shù)和賦值語(yǔ)句的區(qū)別?
像這樣編寫(xiě)構(gòu)造函數(shù)沒(méi)有錯(cuò),但通常使用const。例如,調(diào)用非常量構(gòu)造函數(shù)沒(méi)有問(wèn)題:
錯(cuò)誤原因是func()返回一個(gè)rvalue,它不能綁定到非常量構(gòu)造函數(shù),但可以是常量構(gòu)造函數(shù)。
在類a中定義復(fù)制構(gòu)造函數(shù)后,編譯器將不再生成默認(rèn)常量構(gòu)造函數(shù),因此無(wú)法找到合適的復(fù)制構(gòu)造函數(shù)。