首页 > 代码库 > OGRFeature的DestroyFeature方法

OGRFeature的DestroyFeature方法

 Ogr的销毁DestroyFeature方法:

1 void OGRFeature::DestroyFeature( OGRFeature *poFeature )2 {3     delete poFeature;4 }

析构函数中删除了几何对象和空间参考定义, ogrfeature.cpp文件中查看:

 1 OGRFeature::~OGRFeature() 2  3 { 4     if( poGeometry != NULL ) 5         delete poGeometry; 6  7     for( int i = 0; i < poDefn->GetFieldCount(); i++ ) 8     { 9         OGRFieldDefn    *poFDefn = poDefn->GetFieldDefn(i);10         11         if( !IsFieldSet(i) )12             continue;13     14         switch( poFDefn->GetType() )15         {16           case OFTString:17             if( pauFields[i].String != NULL )18                 VSIFree( pauFields[i].String );19             break;20 21           case OFTBinary:22             if( pauFields[i].Binary.paData != NULL )23                 VSIFree( pauFields[i].Binary.paData );24             break;25 26           case OFTStringList:27             CSLDestroy( pauFields[i].StringList.paList );28             break;29 30           case OFTIntegerList:31           case OFTRealList:32             CPLFree( pauFields[i].IntegerList.paList );33             break;34 35           default:36             // should add support for wide strings.37             break;38         }39     }40     41     poDefn->Release();42 43     CPLFree( pauFields );44     CPLFree(m_pszStyleString);45     CPLFree(m_pszTmpFieldValue);46 }
~OGRFeature()