本文整理汇总了C++中TList::Next方法的典型用法代码示例。如果您正苦于以下问题:C++ TList::Next方法的具体用法?C++ TList::Next怎么用?C++ TList::Next使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类TList
的用法示例。
在下文中一共展示了TList::Next方法的10个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: RemoveController
//----------------------------------------------------------------------------
void Object::RemoveController (Controller* pkController)
{
// check if controller is in list
TList<ControllerPtr>* pkList = m_pkControllerList;
TList<ControllerPtr>* pkPrev = 0;
for (/**/; pkList; pkPrev = pkList, pkList = pkList->Next())
{
if (pkList->Item() == pkController)
{
// unbind controller from object
pkController->SetObject(0);
// remove the controller
if (pkPrev)
{
// controller not at front of list
pkPrev->Next() = pkList->Next();
}
else
{
// controller at front of list
assert(pkList == m_pkControllerList);
m_pkControllerList = pkList->Next();
}
pkList->Next() = 0;
WG_DELETE pkList;
return;
}
}
}
示例2: main
int main() {
TList *list = new TList();
printf_s("list.First() = %s\n", list->First());
printf_s("list.Pop() = %s\n", list->Pop());
list->Push("Hola");
printf_s("Pushed \"Hola\"!\n");
list->Push("Holita");
printf_s("Pushed \"Holita\"!\n");
list->Push("Que tal?");
printf_s("Pushed \"Que tal?\"!\n");
printf_s("list.Next() = %s\n", list->Next());
printf_s("list.Next() = %s\n", list->Next());
printf_s("list.Next() = %s\n", list->Next());
printf_s("list.Next() = %s\n", list->Next());
printf_s("list.First() = %s\n", list->First());
printf_s("list.Pop() = %s\n", list->Pop());
printf_s("list.First() = %s\n", list->First());
list->Push("Hola");
list->Reset();
printf_s("list reset!\n");
printf_s("list.First() = %s\n", list->First());
printf_s("list.Next() = %s\n", list->Next());
delete list;
getchar();
}
示例3: GetReverseList
TList GetReverseList(TList lstSrc) {
TList copy;
const char * ptr;
if (lstSrc.Size() > 0) {
for (unsigned int l = 0; l < lstSrc.Size(); l++) {
for (unsigned int i = 0; i < lstSrc.Size() - 2; i++) {
lstSrc.Next();
}
ptr = lstSrc.Next();
copy.Push(ptr);
}
}
return copy;
}
示例4: GetControllerQuantity
//----------------------------------------------------------------------------
int Object::GetControllerQuantity () const
{
int iControllerQuantity = 0;
TList<ControllerPtr>* pkList;
for (pkList = m_pkControllerList; pkList; pkList = pkList->Next())
{
iControllerQuantity++;
}
return iControllerQuantity;
}
示例5: SetController
//----------------------------------------------------------------------------
// controllers
//----------------------------------------------------------------------------
void Object::SetController (Controller* pkController)
{
// Controllers may not be controlled. This avoids arbitrarily complex
// graphs of Objects. It is possible to allowed controlled controllers,
// but modify and proceed at your own risk...
if (IsDerived(Controller::TYPE))
{
assert(false);
return;
}
// controller must exist
if (!pkController)
{
assert(pkController);
return;
}
// check if controller is already in the list
TList<ControllerPtr>* pkList;
for (pkList = m_pkControllerList; pkList; pkList = pkList->Next())
{
if (pkList->Item() == pkController)
{
// controller already exists, nothing to do
return;
}
}
// bind controller to object
pkController->SetObject(this);
// controller not in current list, add it
pkList = WG_NEW TList<ControllerPtr>;
pkList->Item() = pkController;
pkList->Next() = m_pkControllerList;
m_pkControllerList = pkList;
}
示例6: UpdateControllers
//----------------------------------------------------------------------------
bool Object::UpdateControllers (double dAppTime)
{
bool bSomeoneUpdated = false;
TList<ControllerPtr>* pkList;
for (pkList = m_pkControllerList; pkList!=NULL; pkList = pkList->Next())
{
Controller* pkController = pkList->Item();
assert(pkController);
if (pkController->Update(dAppTime))
{
bSomeoneUpdated = true;
}
}
return bSomeoneUpdated;
}
示例7: GetController
//----------------------------------------------------------------------------
Controller* Object::GetController (int i) const
{
assert(i >= 0);
TList<ControllerPtr>* pkList = m_pkControllerList;
for (int j = 0; j < i; j++, pkList = pkList->Next())
{
if (!pkList)
{
// i >= iControllerQuantity
return 0;
}
}
return (pkList ? pkList->Item() : 0);
}
示例8: GetAllObjectsByName
//----------------------------------------------------------------------------
void Object::GetAllObjectsByName (const String& rkName,
TArray<Object*>& rkObjects)
{
if (rkName == m_kName)
{
rkObjects.Append(this);
}
TList<ControllerPtr>* pkList;
for (pkList = m_pkControllerList; pkList!=NULL; pkList = pkList->Next())
{
Controller* pkController = pkList->Item();
if (pkController)
{
pkController->GetAllObjectsByName(rkName,rkObjects);
}
}
}
示例9: GetObjectByID
//----------------------------------------------------------------------------
Object* Object::GetObjectByID (unsigned int uiID)
{
if (uiID == m_uiID)
{
return this;
}
TList<ControllerPtr>* pkList;
for (pkList = m_pkControllerList; pkList!=NULL; pkList = pkList->Next())
{
Controller* pkController = pkList->Item();
if (pkController)
{
Object* pkFound = pkController->GetObjectByID(uiID);
if (pkFound)
{
return pkFound;
}
}
}
return 0;
}
示例10: GetObjectByName
//----------------------------------------------------------------------------
// name and unique id
//----------------------------------------------------------------------------
Object* Object::GetObjectByName (const String& rkName)
{
if (rkName == m_kName)
{
return this;
}
TList<ControllerPtr>* pkList;
for (pkList = m_pkControllerList; pkList!=NULL; pkList = pkList->Next())
{
Controller* pkController = pkList->Item();
if (pkController)
{
Object* pkFound = pkController->GetObjectByName(rkName);
if (pkFound)
{
return pkFound;
}
}
}
return 0;
}