Polymorphism in C++ is achieved through compile-time methods (function overloading, operator overloading) and runtime methods (virtual functions). Virtual base class is used to solve the diamond problem in multiple inheritance but is not itself a type of polymorphism - it's an inheritance-related concept.