在我的班级之一的构造函数我有这样一行: m_Projects = std::vector<parent_project>(); //m_Projects type is std::vector<parent_project>
m_Current = nullptr; //m_Current type is parent_project*
在这同一类的功能,我有这样一行: m_Projects
我知道自从this question认为dynamic_cast<void*>是检查对象指针的真实身份并确保任何基本指针也将等值地与最大派生(在强制转换后)进行比较的最佳方法。 我不确定的是,这个演员在非多态情况下给出了定义和有用的结果。如果没有,我可以解决这个问题还是这是一个无望的情况? 什么我问的是,如果这是明确的: class A {};
class B : public A {};
对于下面的代码: int i = 8;
int * p_i = &i;
int * p_j;
if (typeid(p_i) != typeid(p_j))
{
p_j= dynamic_cast<int *>(p_i);
}
我得到以下编译错误: error: cannot dynamic_cast ‘p_i’ (of type ‘int*’) to type ‘in
我想建立一个isInstanceOf[T]和asInstanceOf[T]对的包装,将输出Option[T]方便map和getOrElse方法。 所以我试一试,但结果令我失望。 import scala.reflect.runtime.universe.{TypeTag, typeOf}
class Base()
class Deep() extends Base
class Deeper