C++ Specific
控件隐藏的vtordisp构造/销毁置换成员的添加。
#pragma vtordisp([push,] n)
#pragma vtordisp(pop)
#pragma vtordisp()
#pragma vtordisp([push,] {on | off})
参数
push
驱动器设置在内部编译器的当前vtordisp并将设置为 n的新的vtordisp。如果 n 未指定,则不会更改当前vtordisp设置。pop
从内部编译器堆栈中移除顶部的记录和还原设置的vtordisp设置为已取消的值。n
为vtordisp设置指定新值。可能的值为0、1或2,使用/vd0、/vd1和/vd2编译器选项对应。有关更多信息,请参见 /vd(禁用构造置换)。on
等效于 #pragma vtordisp(1)。off
等效于 #pragma vtordisp(0)。
备注
vtordisp 说明仅适用于代码使用虚拟基。如果派生类重写它从虚拟基类继承的虚函数,并且,如果一个构造函数或析构函数该派生类中调用该函数使用指向虚拟基类,编译器可能引入不同的隐藏 vtordisp 字段添加到选件类与虚拟基。
vtordisp 说明影响其后选件类的布局。/vd0、/vd1和/vd2选项为完整模块指定相同的行为。指定 0 或 off 禁止显示隐藏的 vtordisp 成员。请关闭 vtordisp,只有在未可能性选件类的构造函数和析构函数调用 this 指针所指向的对象的虚函数。
指定 1 或 on,默认值,使它们需要的隐藏 vtordisp 成员。
指定 2 启用所有虚拟基的隐藏 vtordisp 成员处理虚函数。vtordisp(2) 可能需要确保 dynamic_cast 正确的性能。一部分构造的对象。有关更多信息,请参见 编译器警告(等级 1)C4436。
#pragma vtordisp(),没有参数,还原设置的vtordisp到初始设置。
#pragma vtordisp(push, 2)
class GetReal : virtual public VBase { ... };
#pragma vtordisp(pop)
END C++ Specific