1、数据类型转换(static_cast)
//数据类型转换
printf("%d\n", static_cast<int>(10.2));
2、指针类型转换(reinterpret_cast)
//指针类型转换
int *pint = new int(1);
char *pch = reinterpret_cast<char *>(pint);
3、涉及到const的指针类型转换(const_cast)
const int num[5] = { 1,2,3,4,5 };
const int *p = num;
int *pint = const_cast<int *>(p);
4、子类转化为父类(dynamic_cast)
class man { public: int name; //加上virtual关键字,可以使得父类用子类初始化后可以调用子类的函数 virtual void run() { cout << "man is running" << endl; } }; class son :public man { public: void run() { cout << "son is running" << endl; } }; void main() { /*man man1; son son1; man *p = &man1; p->run(); p = &son1; p->run();*/ man *pman = new man; son *pson = new son; //子类指针转换为父类指针,但是还是调用子类的函数 man *pfu = dynamic_cast<man *>(pson); pfu->run(); system("pause"); }