q09*_*987 8 c++ inheritance virtual-inheritance
基于http://en.wikipedia.org/wiki/Virtual_inheritance
class Animal
{
...
};
// Two classes virtually inheriting Animal:
class Mammal : public virtual Animal
{
...
};
Run Code Online (Sandbox Code Playgroud)
我还看到书籍使用以下语法,
class Mammal : virtual public Animal
{
...
};
Run Code Online (Sandbox Code Playgroud)
问题>哪个是C++标准?
谢谢
Mah*_*esh 14
来自ISO/IEC 14882:2003(E) - 10.1
可以使用表示法在类定义中指定基类列表:
base-clause:
: base-specifier-list
base-specifier-list:
base-specifier
base-specifier-list , base-specifier
base-specifier:
::opt nested-name-specifieropt class-name
virtual access-specifier opt ::opt nested-name-specifieropt class-name
access-specifier virtual opt ::opt nested-name-specifieropt class-name
access-specifier:
private
protected
public
Run Code Online (Sandbox Code Playgroud)
请注意,建议使用其中一种