-qobjmodel(仅限 C++)
适用的调用
选项 | xlc (编译 C) | xlC (编译 C++) | xlclang(编译 C) | xlclang++(编译 C++) |
---|---|---|---|---|
-qobjmodel | ✓ |
注: 此表中仅列出典型调用。 对于所有基本调用及其等效特殊调用,您可以参阅 编译器调用的完整列表 。
类别
等效编译指示
#pragma 对象模型
用途
设置要用于结构、联合体和类的对象模型。
对象模型在以下方面有所不同:
- 虚拟函数表的布局
- 虚拟基类支持
- 名称管理方案
语法
缺省值
-qobjmodel=classic
参数
- 经典
- 使用与 IBM® C++ 编译器的 V3.6 兼容的对象模型。 也可以使用 -qobjmodel=compat的旧子选项名称来指定此子选项,但在编译器的未来发行版中可能会除去对此旧子选项名称的支持。
- ibm
- 使用 VisualAge® C++ V5.0引入的对象模型。 用此对象模型编译的对象将使用较少的内存,因此在 深入继承虚拟基本类时具有更好的性能。
- 流行 (仅限编译指示)
- 废弃当前编译指示设置并还原为先前编译指示伪指令指定的设置。 如果未指定先前的编译指示,请还原为命令行或缺省选项设置。
使用量
All classes in the same inheritance hierarchy must have the same object model.
预定义的宏
- 当 -qobjmodel=classic 或 #pragma object_model (classic) 生效时 (缺省值) , __OBJECT_MODEL_CLASSIC__ 预定义为 1; 否则未定义。
- 当 -qobjmodel=ibm 或 #pragma object_model (ibm) 生效时, __OBJECT_MODEL_IBM__ 预定义为 1; 否则未定义。
示例
要使用 ibm 对象模型编译
myprogram.C
,请输入以下命令:xlc++ myprogram.C -qobjmodel=ibm