c – 诺基亚是否误用了static_cast?

前端之家收集整理的这篇文章主要介绍了c – 诺基亚是否误用了static_cast?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我刚刚遇到 this example

向下滚动到页面底部,您将找到该页面

QWidget *pw = static_cast<QWidget *>(parent);

Parent的类型为:QObject,它是QWidget的Base类,所以在这种情况下,isnt:
应该使用dynamic_cast吗?

如:

QWidget *pw = dynamic_cast<QWidget*>(parent)

谢谢,

解决方法

如果你知道你正在从一个基类向下一个类(即,你知道该对象实际上是一个子类的实例),那么static_cast是完全合法的(并且性能更高).

猜你在找的C&C++相关文章