开发者

Where is the original of the statement "the most derived class's ctor needs to directly call the virtual base class's ctor"?

While I learn how to implement a final class in C++, I find such a statement:

"the most derived class's ctor needs to directly call the virtual base class's ctor."

However, I can't find the original of the statement in the C++ standard. (N3开发者_如何学运维126)

Who can tell me the exact page number?

Thanks in advance.


In C++03, it's § 12.6.2 5

Initialization shall proceed in the following order:

— First, and only for the constructor of the most derived class as described below, virtual base classes shall be initialized in the order they appear on a depth-first left-to-right traversal of the directed acyclic graph of base classes, where “left-to-right” is the order of appearance of the base class names in the derived class base-specifier-list.

...

In the current draft for C++0x (N3126), it's § 12.6.2 10, which is page 270:

In a non-delegating constructor, initialization proceeds in the following order:

— First, and only for the constructor of the most derived class (1.8), virtual base classes are initialized in the order they appear on a depth-first left-to-right traversal of the directed acyclic graph of base classes, where “left-to-right” is the order of appearance of the base classes in the derived class base-specifier-list

...


N3126 is not the C++ standard.

It's a draft for the upcoming C++ standard.

But anyway, the info about initialization is in the section about initialization for derived classes.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜