Я новичок в программировании на C ++ и изучаю стартовый комплект Tree Behavior Tree, чтобы создать новый каркас ИИ. Мне трудно разобраться в коде Behavior Tree Starter Kit. Учитывая этот код C ++ для дерева поведения Game AI, что означает часть кода вверху (которая, кажется, устанавливает начальный статус или что-то в этом роде)? А что такое виртуальная часть?
Behavior()
: m_eStatus(BH_INVALID)
{
}
virtual ~Behavior()
{
}
Вот полный код, а также что означает virtual Status update() = 0;
:
class Behavior
/**
* Base class for actions, conditions and composites.
*/
{
public:
virtual Status update() = 0;
virtual void onInitialize() {}
virtual void onTerminate(Status) {}
Behavior()
: m_eStatus(BH_INVALID)
{
}
virtual ~Behavior()
{
}
Status tick()
{
if (m_eStatus != BH_RUNNING)
{
onInitialize();
}
m_eStatus = update();
if (m_eStatus != BH_RUNNING)
{
onTerminate(m_eStatus);
}
return m_eStatus;
}
void reset()
{
m_eStatus = BH_INVALID;
}
void abort()
{
onTerminate(BH_ABORTED);
m_eStatus = BH_ABORTED;
}
bool isTerminated() const
{
return m_eStatus == BH_SUCCESS || m_eStatus == BH_FAILURE;
}
bool isRunning() const
{
return m_eStatus == BH_RUNNING;
}
Status getStatus() const
{
return m_eStatus;
}
private:
Status m_eStatus;
};