繼承構(gòu)造函數(shù)初始化順序 多重繼承構(gòu)造函數(shù)的調(diào)用順序
在任何非虛擬基類構(gòu)造函數(shù)之前調(diào)用虛擬基類的構(gòu)造函數(shù)。如果構(gòu)造中包含多個(gè)虛擬基類,則它們的調(diào)用順序?yàn)槁暶黜樞?。如果虛擬類是從非虛擬類派生的,則首先調(diào)用非虛擬類的構(gòu)造函數(shù)。下面是一個(gè)示例:class X:
在任何非虛擬基類構(gòu)造函數(shù)之前調(diào)用虛擬基類的構(gòu)造函數(shù)。如果構(gòu)造中包含多個(gè)虛擬基類,則它們的調(diào)用順序?yàn)槁暶黜樞?。如果虛擬類是從非虛擬類派生的,則首先調(diào)用非虛擬類的構(gòu)造函數(shù)。
下面是一個(gè)示例:
class X:public y,virtual public Z
X one
調(diào)用順序如下:
Z()//虛擬基類初始化
y()//非虛擬基類
X()//繼承類