当基类不存在virtual函数的时候,就不能使用dynamic_cast。注释掉"virtual void f(){}"就能看见编译错误了。
struct A
{
virtual void f(){}
};
template <class T>
struct TA : public A
{
T _t;
};
int main()
{
A* a = new TA<int>();
TA<int>* ta = dynamic_cast< TA< int >* >(a);
delete a;
}*
|
阅读(811) | 评论(0) | 转发(0) |