本文主要是介绍static_cast, dynamic_cast, const_cast, reinterpret_cast的简单介绍,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
在C++中, 我们有新的强制转换机制, 为什么要这么搞呢? 因为这些关键字非常显眼, 而且一旦出了问题, 可以方便查阅code. 我们今天暂时不说dynamic_cast, 仅仅感知一下其余的三个:
int main()
{// 普通转换, 只能用static_castint i = 0;double d = static_cast<int>(i);// 转换回来, 其实此处也可以用 reinterpret_castvoid *p1 = &i;int *p2 = static_cast<int *>(&i);// 去常转换, 只能用const_castconst char *q = "abc";char *p3 = const_cast<char *>(q);// 重解释, 只能用reinterpret_castint n = 0;double *pd = reinterpret_cast<double *>(&n);return 0;
}
一定要慎用, 这些转换很容易产生非程序猿预期的结果, 尤其是reinterpret_cast.
这篇关于static_cast, dynamic_cast, const_cast, reinterpret_cast的简单介绍的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!