为我的不当术语道歉。
如果条目不存在,我有一段代码返回 NULL 指针:
ObjectType * MyClass::FindObjectType( const char * objectTypeName )
{
if ( objectTypeMap.find( objectTypeName ) == objectTypeMap.end() )
{
Msg( "\n[C++ ERROR] No object type: %s", objectTypeName );
return NULL;
}
else
return &objectTypeMap[ objectTypeName ];
}
我想做同样的事情,但这次返回一个对象而不仅仅是一个指针。以下代码没有给我任何编译器错误(这让我感到惊讶):
ObjectType MyClass::FindObjectType( const char * objectTypeName )
{
if ( objectTypeMap.find( objectTypeName ) == objectTypeMap.end() )
{
Msg( "\n[C++ ERROR] No object type: %s", objectTypeName );
}
else
return objectTypeMap[ objectTypeName ];
}
使用指针,我可以检查是否找不到条目,如下所示:
if ( FindObjectType( objectType ) == NULL )
//Do something
如何对返回的对象执行等效检查?