继承关键字

Microsoft 专用

class [__single_inheritance] class-name;
class [__multiple_inheritance] class-name;
class [__virtual_inheritance] class-name;

其中:

  • 类名称
    声明类的名称。

C++ 允许您将指针声明为类成员在类定义之前。 例如:

class S;
int S::*p;

在以上代码, p 声明是指向类 S. 的整数成员。 但是, class S 此代码未定义;它只声明。 当编译器遇到这种指针时,它必须创建一个通用表示指针。 该表示的范围取决于指定的继承模型。 有四种方式指定继承模型给编译器:

  • 指向成员表示形式下的 IDE

  • 在使用 /vmg 的命令行开关

  • 使用 pointers_to_members 说明

  • 使用继承关键字 __single_inheritance、 __multiple_inheritance和 __virtual_inheritance。 此技术控件基于每个类的基类型的继承模型。

    备注

    如果您始终将指针声明为类的成员在定义类之后,不需要使用这些选项中的任何一个。

将指针声明为类的成员在类定义之前的影响产生的可执行文件的大小和速度。 越复杂类,越高使用的继承要求的字节数表示指向成员的指针的类和越大需的代码说明指针。 单一继承是最不复杂的,因此,虚拟继承是最复杂。

如果上面的示例会更改为:

class __single_inheritance S;
int S::*p;

无论命令行选项或杂注,对 class S 成员的指针将使用最小可能值的表示形式。

备注

类指针指向成员表示形式的相同的前向声明在声明指向该类的成员的每个翻译单元,应发生,并且声明应发生,在指向成员的指针声明之前。

特定于 Microsoft 的结尾

请参见

参考

C++关键字