1
누군가 다음 코드 (아래 다섯 줄)의 dynamic_cast가 실패하는 이유를 설명해 줄 수 있습니까? 나는 그것이 명백한 무엇인가 두렵다. 그러나 나는 그것을 볼 수 없다.Qt에서 다운 캐스팅
//dynamic_cast.h
#ifndef DYNAMIC_CAST_H
#define DYNAMIC_CAST_H
#include <QObject>
class Parent: public QObject
{
Q_OBJECT
public:
Parent(QObject * parent = 0) {}
};
class Child: public QObject
{
Q_OBJECT
public:
Child(QObject * parent = 0) {}
};
#endif // DYNAMIC_CAST_H
//dynamic_cast.cpp
#include <iostream>
#include "dynamic_cast.h"
using namespace std;
int main (int argc, char *argv[])
{
Parent * aParent = new Parent;
Child * aChild = new Child(aParent);
Parent * anotherParent = dynamic_cast <Parent *>(aChild->parent());
if (anotherParent==0)
cout << "Assigned null pointer" << endl;
else cout <<"No problem!";
return 0;
}
내가 두려워했던 것보다 훨씬 더 분명하다 (나는 이것에 대해 새로운 것을 말할 수 있는가?) 감사합니다! – planarian