zoukankan      html  css  js  c++  java
  • 判断实体的类型 相关操作

    desc() 静态函数,返回指定类的描述符。

    cast() 静态函数,类型转换函数,将父类指针转换为指定类的指针,如果失败,返回NULL。

    isKindOf() 虚函数判断是否指定类或它的派生类的实例。

    isA() 虚函数,返回调用实例的类的描述符。

    如有一个实体ID,但不知道是直线还是弧,可如下操作:

    AcDbEntity* pEnt = NULL;

    if (Acad::eOk != acdbOpenAcDbEntity(pEnt, Id, AcDb::kForRead))

    {

             acutprintf(_T(“打开失败”));

             return;

    }

    if (pEnt->isKindOf(AcDbLine::desc()))       // 直线

    {

             AcDbLine* pLine = AcDbLine::cast(pEnt);

    }

    else if (pEnt->isKindOf(AcDbArc::desc()))         // 弧

    {

             AcDbArc* pArc = AcDbArc::cast(pEnt);

    }

    else

    {

             // 其他类型

    }

    // 使用完毕后要关闭

    pEnt->close();

    isKindOf()和isA()

    调用isKindOf()进行类型判定时,是向下兼容的,即如果一个实体是AcDbLine类型,它从AcDbCurve派生,调用isKindOf(AcDbCruve::desc())时返回true。如果调用isA() == AcDbCurve::desc(),返回false,只有调用isA == AcDbLine::desc()时返回true。

  • 相关阅读:
    volatile详解
    Java并发之AQS详解
    Thread详解
    Hibernate检索策略
    Hibernate查询方式
    Hibernate--对象关系
    hibernate--hibernate.cfg.xml常用配置详解
    hibernate--CRUD初体验
    hibernate--HelloWorld
    Struts支持的contentType
  • 原文地址:https://www.cnblogs.com/xzh1993/p/4686310.html
Copyright © 2011-2022 走看看