共用方式為


/vmm、/vms、/vmv (一般用途表示)

在選取 /vmb、/vmg (表示方法) 做為表示方法時使用。這些選項表示尚未發生類別定義的繼承模型。

/vmm
/vms
/vmv

備註

請參閱下表描述的選項。

選項

描述

/vmm

將指向某一類別成員的指標最一般性的表示指定為使用多重繼承的指標。

對應到 #pragma pointers_to_members繼承關鍵字和引數是 multiple_inheritance

這種表示會比單一繼承所需要的表示大一些。

如果指向其成員之指標被宣告的類別定義的繼承模型為虛擬,編譯器將會產生錯誤。

/vms

將指向某一類別成員的指標最一般性的表示指定為不使用繼承或使用單一繼承的指標。

#pragma pointers_to_members 的對應繼承關鍵字和引數是 single_inheritance

這是指向某一類別成員之指標的最小表示。

如果指向其成員之指標被宣告的類別定義的繼承模型為多重或虛擬,編譯器將會產生錯誤。

/vmv

將指向某一類別成員的指標最一般性的表示指定為使用虛擬繼承的指標。它絕不會造成錯誤,而且也是預設值。

#pragma pointers_to_members 的對應繼承關鍵字和引數是 virtual_inheritance

這個選項需要比其他選項更大的指標和額外程式碼來解譯指標。

當您指定這些繼承模型選項的其中一個時,不論類別成員的繼承類型為何,或者指標是在類別之前或之後宣告,該模型都會用於所有指向這些類別成員的指標。因此,如果您一直都是使用單一繼承類別,就可以透過 /vms 編譯,縮減程式碼大小;但是,如果您要使用最一般性的情況 (放棄最大資料表示),請使用 /vmv 編譯。

在 Visual Studio 開發環境中設定這個編譯器選項

  1. 開啟專案的 [屬性頁] 對話方塊。如需詳細資訊,請參閱 HOW TO:開啟專案屬性頁

  2. 按一下 [C/C++] 資料夾。

  3. 按一下 [命令列] 屬性頁。

  4. 在 [其他選項] 方塊中,輸入編譯器選項。

若要以程式方式設定這個編譯器選項

請參閱

參考

/vmb、/vmg (表示方法)

編譯器選項

設定編譯器選項