![](/img/trans.png)
[英]Virtual Inheritance : Base Ctor not calling in Most Derived Class?
[英]Where is the original of the statement “the most derived class's ctor needs to directly call the virtual base class's ctor”?
當我學習如何在C ++中實現最終類時,我發現了這樣一條語句:
但是,我在C ++標准中找不到該語句的原始內容。 (N3126)
誰能告訴我確切的頁碼?
提前致謝。
在C ++ 03中,它是§12.6.2 5
初始化應按以下順序進行:
—首先,並且僅對於如下所述的最大派生類的構造函數,虛擬基類應按照它們在基類的有向無環圖的深度優先從左到右遍歷時出現的順序進行初始化,其中“ “從左到右”是基類名稱在派生類base-specifier-list中的出現順序。
...
在C ++ 0x(N3126)的當前草案中,它是§12.6.2 10,即第270頁:
在非委托構造函數中,初始化按以下順序進行:
—首先,並且僅對於最派生類(1.8)的構造函數,虛擬基類將按照它們在基類的有向無環圖的深度優先的從左到右遍歷時出現的順序進行初始化,其中“左“從右到右”是基類在派生類base-specifiner-list中的出現順序
...
N3126 不是 C ++標准。
這是即將到來的C ++標准的草案。
但是無論如何,有關初始化的信息在有關派生類的初始化的部分中。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.