C++中的多態性通過使用虛函數和繼承來實現。當一個基類有一個或多個虛函數時,派生類可以重寫這些虛函數,并且通過基類指針或引用來調用這些函數時,會根據對象的實際類型調用相應的派生類函數,從而實現多態性。
例如,假設有一個基類Animal和派生類Dog和Cat,其中Animal類有一個虛函數speak(),而Dog和Cat類分別重寫了speak()函數。當使用Animal指針指向一個Dog對象并調用speak()函數時,虛函數機制會根據對象的實際類型調用Dog類中的speak()函數,而不是Animal類中的speak()函數,從而實現多態性。
另外,C++中還可以使用純虛函數和抽象類來實現接口和多態性。一個純虛函數是在基類中聲明的虛函數,但沒有實現,派生類必須重寫這個函數才能被實例化。這樣可以實現接口的統一定義,而通過基類指針或引用調用這個純虛函數時,會根據具體的派生類來調用相應的函數,實現多態性。