chikar
دوشنبه 01 تیر 1394, 18:47 عصر
طبق جستجو هایی که من کردم مثلا در این لینک (https://msdn.microsoft.com/en-us/library/c36yw7x9.aspx)و بسیاری از لینک های دیگه، برای تبدیل یک اشاره گر از کلاس والد به یک اشاره گر از کلاس فرزند، روش dynamic_cast رو مناسب تر می دونند و استفاده از static_cast با وجوی که امکانپذیر هست ولی "ناامن" توصیف شده، پس چرا کیوت از این روش تبدیل برای event ها استفاده می کنه؟
مگه تبدیل با dynamic_cast از نوع تبدیل run-time محسوب نمی شه و static_cast از نوع تبدیل compile-time ، پس برای event ها که روش run-time به ظاهر مناسب تر به نظر میاد؟
bool MainWindow::eventFilter(QObject *obj, QEvent *event)
{
if (event->type() == QEvent::MouseButtonPress)
{
QMouseEvent *mouse = static_cast<QMouseEvent*>(event);
return true;
}
return QMainWindow::eventFilter(obj,event);
}
مگه تبدیل با dynamic_cast از نوع تبدیل run-time محسوب نمی شه و static_cast از نوع تبدیل compile-time ، پس برای event ها که روش run-time به ظاهر مناسب تر به نظر میاد؟
bool MainWindow::eventFilter(QObject *obj, QEvent *event)
{
if (event->type() == QEvent::MouseButtonPress)
{
QMouseEvent *mouse = static_cast<QMouseEvent*>(event);
return true;
}
return QMainWindow::eventFilter(obj,event);
}