C++中的多态性通过使用虚函数和继承来实现。当一个基类有一个或多个虚函数时,派生类可以重写这些虚函数,并且通过基类指针或引用来调用这些函数时,会根据对象的实际类型调用相应的派生类函数,从而实现多态性。
例如,假设有一个基类Animal和派生类Dog和Cat,其中Animal类有一个虚函数speak(),而Dog和Cat类分别重写了speak()函数。当使用Animal指针指向一个Dog对象并调用speak()函数时,虚函数机制会根据对象的实际类型调用Dog类中的speak()函数,而不是Animal类中的speak()函数,从而实现多态性。
另外,C++中还可以使用纯虚函数和抽象类来实现接口和多态性。一个纯虚函数是在基类中声明的虚函数,但没有实现,派生类必须重写这个函数才能被实例化。这样可以实现接口的统一定义,而通过基类指针或引用调用这个纯虚函数时,会根据具体的派生类来调用相应的函数,实现多态性。