C 虛擬機制的壓制

2021-07-01 19:58:38 字數 556 閱讀 3311

c++中,如果乙個類有虛函式的時候,當使用該類的指標呼叫其虛函式的時候,**會被編譯器轉換為使用虛函式表中儲存的函式位址找到函式後二次呼叫,即:

class a

public:

virtual void out();

virtual void inner(){};

}int main()

a* pa = new a();

pa->out();

}**中a類的out裡的this->inner();編譯後形成的偽**可能是這樣的

void out(const a* this)

this->(*vptr[2])();

}但是,對於out函式來說,不管在基類還是在派生類裡面,既然進到這個函式裡面的,this指標的型別已經明確了,就是自己本類了,因此,在out函式裡使用虛擬機制呼叫inner函式其實是不必要的,因此,對於程式設計師來說,有必要在這裡壓制一下虛擬機制,具體的方法是:

virtual void out();

這樣就會顯示呼叫a類的inner函式,壓制虛擬機制通過虛函式表呼叫inner函式,節省不少開銷。

virtualbox虛擬機器 虛擬機器的網路

今天要測試ip多宿主 ip multihoming 即host和guest的兩個網絡卡分別接,host ping guest的ipv6不通。解決過程如下 命令輸出 ip addr 1 lo mtu 65536 qdisc noqueue state unknown link loopback 00 ...

大戰Java虛擬機器 3 類載入機制

當你的 編譯成class檔案之後,那麼虛擬機器如何載入這些檔案呢?我們需要知道虛擬機器到底做了什麼樣的事情。載入 鏈結 初始化 使用 解除安裝 1 載入 讀取二進位制位元組流,將靜態儲存結構轉化為方法區執行時的資料結構,在記憶體中生詞乙個代表這個類的物件。2 驗證 驗證格式,元資料,位元組碼,符合引...

虛擬機器 虛擬機器軟體的簡單認識

1.vmware workstation 適用平台 linux和windows 學校實驗機上用的此軟體 搭載的是redhat 9的虛擬機器 直接匯入vmx檔案就可以使用 具體步驟參考 雖然此步驟掩飾的是windows的虛擬機器但是和linux的虛擬機器開啟步驟一樣 都是使用vmx檔案直接匯入的 2....