最新回答 / 慕沐6594187
初始化列表是初始化成員變量, 而繼承體系中 ,子類的構造函數需要調用父類的構造函數(在子類產生一個父類對象),從而才能對父類對象虛函數重寫(也就是對父類對象虛表的覆蓋)
2016-08-31
最新回答 / 慕移動2313051
因為test1是直接以類對象作為實參,在執行時會產生一個臨時對象,函數執行完后會自動銷毀,所以你看到了~person();但test2和test3是以指針和引用作為函數實參,在執行時不會產生新對象,所以函數執行完不存在釋放,相對于直接以對象作為實參的情況,這兩種效率更高
2016-08-19
已采納回答 / 慕粉3792264
在私有繼承中父類的公有成員和函數都被繼承到了子類的私有訪問限定符下面了,在main函數中是無法直接調用私有成員中的成員和函數,但是可以通過子類中的成員函數來訪問私有成員中的成員和函數,再在main函數調用相應的成員函數,通過這種方法相當于間接的訪問了其父類在私有繼承中的公有成員和函數。
2016-08-18
最新回答 / 慕粉3657463
???????????????? ?public ? ????? ?protected ? ?????private ? ?共有繼承 ? ?public ? ????? ?protected ? ?????不可見 ? ?私有繼承 ? ?private ? ??????private ? ?????????不可見 ? ?保護繼承 ? ?protected ? ?protected ? ?????不可見 ? ?
2016-07-28
最新回答 / 兮蓅
首先,Soldier類保護繼承Person類,Infantry公有繼承Soldier類。這個時候Soldier的對象不能調用Person類中的work成員函數,說明Person中數據成員和成員函數不在其(Soldier)public下(因為Person中work的訪問屬性為public,如果是公有繼承肯定可以訪問)。那就剩下保護繼承(私有繼承情況更是不能)了。而Infantry是公有繼承Soldoer類,如果Infantry中成員可以訪問Person中的數據成員和成員函數也就說明了Soldier類中的成員...
2016-07-04
已采納回答 / 慕田峪3503779
首先他證明了protected繼承并不是被繼承到public里面,因為person的子類Soldier的實例無法訪問protected繼承自person的數據成員,這時還有可能是被繼承到private里面;但是,Soldier的子類Infantry可以訪問到父類protected繼承自person的成員函數,說明只能是被繼承到protected中,若是到了private中,則Infantry中無法使用。
2016-06-29