本文整理汇总了C++中Container::GetChildren方法的典型用法代码示例。如果您正苦于以下问题:C++ Container::GetChildren方法的具体用法?C++ Container::GetChildren怎么用?C++ Container::GetChildren使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Container
的用法示例。
在下文中一共展示了Container::GetChildren方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1:
// FindObjectByScopedName
//------------------------------------------------------------------------------
/*static*/ Object * ReflectionInfo::FindObjectByScopedName( const AString & scopedName )
{
// split into individual names
Array< AString > names;
scopedName.Tokenize( names, '.' );
const size_t size = names.GetSize();
ASSERT( size );
const Array< Object * > * children = &s_RootObjects;
size_t depth = 0;
for (;;)
{
// find object at this scope
Object * currentObj = nullptr;
const AString & lookingFor = names[ depth ];
const size_t numChildren = children->GetSize();
for ( size_t i=0; i<numChildren; ++i )
{
Object * thisChild = ( *children )[ i ];
if ( thisChild->GetName() == lookingFor )
{
currentObj = thisChild;
break;
}
}
if ( currentObj == nullptr )
{
return nullptr; // not found
}
// are we at the final object?
if ( depth == ( size - 1 ) )
{
return currentObj; // success
}
// is this a container?
Container * currentContainer = DynamicCast< Container >( currentObj );
if ( currentContainer == nullptr )
{
return nullptr; // no more child objects
}
children = ¤tContainer->GetChildren();
depth++;
}
}