原因之一是其他函數(shù)都可以通過類對(duì)象來調(diào)用扳缕,但是構(gòu)造函數(shù)是用來產(chǎn)生對(duì)象的函數(shù)慌闭,它在對(duì)象之前。而繼承對(duì)對(duì)象來說是能夠調(diào)用父類的函數(shù)躯舔,但是對(duì)象都不存在你還調(diào)用什么父類的構(gòu)造函數(shù)驴剔?所以構(gòu)造函數(shù)無法繼承。
C++ Primer Plus說析構(gòu)函數(shù)和COPY賦值操作符是不能被繼承的庸毫,為了驗(yàn)證這一結(jié)論仔拟,我決定做一個(gè)實(shí)驗(yàn)。一個(gè)函數(shù)能否被繼承可以通過能夠通過子類對(duì)象來調(diào)用判斷飒赃,如果能利花,說明該函數(shù)能被繼承科侈,否則,不能被繼承炒事。
上圖中子類什么都沒有臀栈,父類中有構(gòu)造函數(shù)、COPY構(gòu)造函數(shù)挠乳、COPY賦值操作符和析構(gòu)函數(shù)权薯,看下面的程序。
從這個(gè)運(yùn)行結(jié)果可以看出睡扬,父類的析構(gòu)函數(shù)和COPY構(gòu)造函數(shù)無法調(diào)用盟蚣,而那個(gè)COPY賦值操作符的實(shí)參是base類型,因而那是父類的COPY賦值操作符卖怜。從結(jié)果可知屎开,同樣無法調(diào)用成功。
所以可知書上的結(jié)論是正確的马靠。