What is Type Casting in C++? What are different ways to type cast?