/vmm、/vms、/vmv(通用表示形式)
当选择 /vmb、/vmg(表示方法)作为表示方法时使用。 这些选项指示尚未遇到的类定义的继承模型。
/vmm
/vms
/vmv
备注
下表描述了这些选项。
选项 |
说明 |
---|---|
/vmm |
指定指向类成员的指针的最通用表示形式为使用多重继承的表示形式。 #pragma pointers_to_members 相应的 inheritance 关键字和参数是 multiple_inheritance。 此表示形式比单一继承需要的表示形式大。 如果类定义(已为其声明指向成员的指针)的继承模型为虚拟,编译器将生成错误。 |
/vms |
指定指向类成员的指针的最通用表示形式为不使用继承或使用单一继承的表示形式。 #pragma pointers_to_members 相应的 inheritance 关键字和参数是 single_inheritance。 这是指向类成员的指针的最小可能表示形式。 如果类定义(已为其声明指向成员的指针)的继承模型为多重或虚拟,编译器将生成错误。 |
/vmv |
指定指向类成员的指针的最通用表示形式为使用虚拟继承的表示形式。 它从不导致错误并且为默认设置。 #pragma pointers_to_members 相应的 inheritance 关键字和参数是 virtual_inheritance。 与其他选项相比,此选项需要较大的指针和解释该指针的附加代码。 |
当指定这些继承模型选项之一时,该模型用于所有指向类成员的指针,而不管它们的继承类型或指针是在类前还是类后声明。 因此,如果总是使用单一继承类,则可以通过用 /vms 编译来减小代码大小;然而,如果要使用最通用的情形(以数据表示形式最大为代价),请用 /vmv 编译。
在 Visual Studio 开发环境中设置此编译器选项
打开项目的**“属性页”**对话框。 有关详细信息,请参见如何:打开项目属性页。
单击**“C/C++”**文件夹。
单击**“命令行”**属性页。
在**“附加选项”**框中键入编译器选项。